Xml Informa RSS-类丢失错误,我做错了什么?
我列出了一些代码,用于从YouTube读取订阅的OPML文件。代码来自 当我运行代码时,我得到类丢失错误。我能找到的唯一一个关于这一点的参考表明javaDOM版本可能是错误的,因为它被更新为DOM2.0,但没有告诉我如何修复,它只是说使用一个旧版本,并给出了指向javaDOM版本0.7的链接 现在,当我将JavaDOM0.7安装到Netbeans库中时,错误会消失,直到我尝试运行或编译它,但失败了 现在我不知道该怎么办 我已经为此挣扎了几天了,我的主要问题是OPML文件具有所有相同的标记信息,即Xml Informa RSS-类丢失错误,我做错了什么?,xml,parsing,opml,Xml,Parsing,Opml,我列出了一些代码,用于从YouTube读取订阅的OPML文件。代码来自 当我运行代码时,我得到类丢失错误。我能找到的唯一一个关于这一点的参考表明javaDOM版本可能是错误的,因为它被更新为DOM2.0,但没有告诉我如何修复,它只是说使用一个旧版本,并给出了指向javaDOM版本0.7的链接 现在,当我将JavaDOM0.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中处理这些标签组合,没有足够的信息,我已经搜索了三天了…我无法读取从YouTube导出为OPML文件的订阅。OPML由一个outline
元素组成,该元素包含每个RSS订阅的多个outline
子元素
Informa的OPMLParser
类只查看了body
元素中的outline
元素,这就是大多数OPML订阅列表的结构。它没有在outline
中查找子outline
元素
作为替代解决方案,我使用JavaXML解析库1.12.10。下面是读取YouTube生成的OPML文件的代码:
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());
}
我无法读取从YouTube导出为OPML文件的订阅。OPML由一个outline
元素组成,该元素包含每个RSS订阅的多个outline
子元素
Informa的OPMLParser
类只查看了body
元素中的outline
元素,这就是大多数OPML订阅列表的结构。它没有在outline
中查找子outline
元素
作为替代解决方案,我使用JavaXML解析库1.12.10。下面是读取YouTube生成的OPML文件的代码:
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());
}