gpt4 book ai didi

Android XML.parse() 找不到内容 :encoded tag

转载 作者:行者123 更新时间:2023-11-29 18:11:24 24 4
gpt4 key购买 nike

我正在使用 Android 的 XML 解析助手 (android.util.Xml.parse(InputStream, Encoding, ContentHandler) 来解析这个 RSS 提要:http://www.rssweather.com/wx/nz/christchurch/rss.php .它似乎无法识别 content:encoded标签,其中包含我要检索的数据。这是 XML 的结构:

<rss>
<channel>
<item>
<title>...</title>
<pubDate>...</pubDate>
// Other tags
<content:encoded>
<![CDATA[
(.... this is what I want to retrieve ...)
]]>
</content:encoded>
</item>
</channel>
</rsss>

这是我的代码:

void parse(){
RootElement root = new RootElement("rss");
Element channel = root.getChild("channel");
Element item = channel.getChild("item");
Element contentEncoded = item.getChild("content", "encoded");
// Have also tried these two:
Element encoded = item.getChild("encoded");
Element content = item.getChild("content");

contentEncoded.setEndTextElementListener(new EndTextElementListener() {
public void end(String body) {
Log.d("Test", "Content found: " + body);
}
});


try {
Xml.parse(feedUrl.openConnection().getInputStream(),
Xml.Encoding.UTF_8, root.getContentHandler());
} catch (Exception e){
throw new RuntimeException(e);
}
}

我哪里做错了? :) 我可以从 <item> 检索其他数据标题或 pubDate 等元素没有问题;只有 content:encoded 令我困惑。

最佳答案

您可以坚持使用 Android Sax 解析器。我遇到了同样的问题以及使用内容命名空间和“编码”作为元素的解决方案。

您将在 rss 元素中找到内容命名空间:

<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/" ... >

所以获取元素看起来像这样:

item.getChild("http://purl.org/rss/1.0/modules/content/", "encoded");

关于Android XML.parse() 找不到内容 :encoded tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10453015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com