Informa RSS - Ошибка в классе, что я делаю не так?
Я установил некоторый код для чтения файла OPML для подписок с YouTube. Код взят из информ RSS здесь
Когда я запускаю код, я получаю сообщение об отсутствии класса. Единственная ссылка на это, которую я мог найти, предполагала, что версия javaDOM может быть неправильной, так как она была обновлена до DOM2.0, но не сказала мне, как я могу это исправить, она просто сказала использовать более старую версию и дала ссылку на версию 0.7 javaDOM?
Теперь, когда я установил JavaDOM 0.7 в библиотеку для NetBeans, ошибка исчезает до тех пор, пока я не попытаюсь запустить или скомпилировать ее, и она не будет выполнена....
Теперь я не знаю, куда идти с этим.
Я боролся с этим уже несколько дней, моя главная проблема в том, что в файле OPML есть та же информация тегов, т.е.
<opml version="1.1">
<body>
<outline text="YouTube Subscriptions" title="YouTube Subscriptions">
<outline text="PersonOne" title="PersonOne" type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCuNfoe7ozooi0LZgp6JJS4A" />
<outline text="PersonTwo" title="PersonTwo" type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCVErFSr-jdTa_QE4PPSkVJw" />
<outline text="Person Three" title="Person Three" type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCittVr8imKanO_5KohzDbpg" />
</outline>
</body>
</opml>
... и не хватает информации о том, как обрабатывать эту комбинацию тегов в Java, я искал три дня...
1 ответ
Мне не удалось заставить Informa 0.7.0-alpha2 читать подписки, экспортированные из YouTube в виде файла OPML. OPML состоит из одного outline
элемент, который содержит несколько outline
дочерние элементы для каждой подписки RSS.
Информ-х OPMLParser
класс только смотрел на outline
элементы внутри body
элемент, который является, как большинство списков подписки OPML структурированы. Это не смотрел на ребенка outline
элементы внутри outline
,
В качестве альтернативного решения я использовал библиотеку синтаксического анализа Java XML XOM 1.12.10. Вот код для чтения файла OPML, который создает YouTube:
try {
// create an XML builder
Builder bob = new Builder();
// build an XML document from the OPML file
Document doc = bob.build(new File("subscription_manager.xml"));
// get the root element
Element opml = doc.getRootElement();
// get root's body element
Element body = opml.getFirstChildElement("body");
// get body's outline element
Element outline = body.getFirstChildElement("outline");
// get outline's child outline elements
Elements outlines = outline.getChildElements("outline");
// loop through those elements
for (int i = 0; i < outlines.size(); i++) {
// display each RSS feed's URL
System.out.println(outlines.get(i).getAttributeValue("xmlUrl"));
}
} catch (ParsingException | IOException ex) {
System.out.println(ex.getMessage());
}
Этот код имеет эти импорты:
import java.io.File;
import java.io.IOException;
import nu.xom.Builder;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.Elements;
import nu.xom.ParsingException;