无法用javascript获取描述rss标签数据

时间:2009-08-05 23:35:24

标签: javascript xml parsing

我目前正在创建一个小部件来从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>

1 个答案:

答案 0 :(得分:0)

我不确定javascript,但许多XML解析器为CDATA创建自己的节点,因此您可能需要获取CDATA节点的子节点,这意味着您的代码不够深入以获取内部数据CDATA节点。