我目前正在制作一个小部件来获取并显示提要中的项目。我在大部分情况下都可以正常工作,但由于某种原因,项目内标签内的数据返回为空,但我在 和 标签中获取数据没有问题。
feed
是 xmlhttp.responseXML
对象。
var items = feed.getElementsByTagName("item");
for (var i=0; i<10; i++){
container = document.getElementById('list');
new_element = document.createElement('li');
title = items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
link = items[i].getElementsByTagName("link")[0].firstChild.nodeValue;
alert(items[i].getElementsByTagName("description")[0].firstChild.nodeValue);
new_element.innerHTML = "<a href=\""+link+"\">"+title+"</a> ";
container.insertBefore(new_element, container.firstChild);
}
我不知道为什么它不适用于该标签而适用于其他标签。
以下是尝试解析的 rss feed 的示例:
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>A title</title>
<link>http://linksomehwere</link>
<description>The title of the feed</description>
<language>en-us</language>
<item>
<pubDate>Fri, 10 Jul 2009 11:34:49 -0500</pubDate>
<title>Awesome Title</title>
<link>http://link/to/thing</link>
<guid>http://link/to/thing</guid>
<description>
<![CDATA[
<p>some html crap</p>
blah blah balh
]]> </description>
</item>
</channel>
</rss>
最佳答案
我不确定 JavaScript,但许多 XML 解析器为 CDATA 创建自己的节点,因此您可能需要获取 CDATA 节点的子节点,这意味着您的代码不够深入,无法获取其中的数据CDATA 节点。
关于javascript - 无法使用javascript获取描述RSS标签数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236291/