我目前正在创建一个小部件来从Feed中显示和显示项目。我在大多数情况下都有这个工作,但由于某种原因,项目中标签内的数据变回为空,但我在和标签中的数据没问题。
feed
和x mlhttp.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尝试解析的示例:
<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>
答案 0 :(得分:0)
我不确定javascript,但许多XML解析器为CDATA创建自己的节点,因此您可能需要获取CDATA节点的子节点,这意味着您的代码不够深入以获取内部数据CDATA节点。