javascript - 无法使用javascript获取描述RSS标签数据

标签 javascript xml parsing

我目前正在制作一个小部件来获取并显示提要中的项目。我在大部分情况下都可以正常工作,但由于某种原因,项目内标签内的数据返回为空,但我在 和 标签中获取数据没有问题。

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/

相关文章:

c - 需要一种方法来解析 C 中的代数表达式

javascript - 页面未显示在多页中

java - 尝试在 Java 中创建 XML 文件 - 获取 DOMException : HIERARCHY_REQUEST_ERR

xml - XSLT:检查 XML 元素是否在 xpath 中有父元素

c++ - 灵气中如何在字符串属性开头插入一个字符

parsing - 使用 flex/antlr 进行部分解析

javascript - 从 cookie 加载 CSS 类(带有转换),而不转换到它们中

javascript - 在 meteor /Node js 中从客户端获取集合

javascript - 即使调用了 React 组件方法,expect(...).toHaveBeenCalled() 也会失败

xml - 自定义 SharePoint 列表模板中的字段未呈现列表项表单