【问题标题】:jQuery parsing RSS and namespaced element like <content:encoded>jQuery 解析 RSS 和命名空间元素,如 <content:encoded>
【发布时间】:2016-06-27 04:08:26
【问题描述】:

我正在使用 jQuery 来解析 RSS 提要。在每个&lt;item&gt; 中都有一个命名空间元素,例如我想选择的&lt;content:encoded&gt;。如何在 jQuery 中选择它?

$(xml).find('item') works but $(xml).find('item content') does not.

【问题讨论】:

标签: javascript jquery rss parsing encode


【解决方案1】:

您是通过 Ajax 加载 xml 吗?然后,确保服务器将内容类型设置为“text/xml”而不是“text/html”。

还要确保您想要的元素的标签名称确实是内容,而不是其他内容(如内容:编码)。在这种情况下尝试:

.find('item content\\:encoded')?

特殊字符,如 : 需要在 jQuery 选择器中转义。

【讨论】:

  • 我检查的第一件事。它是 feed.xml,因此将其作为 XML 文件读取。问题是标签名称是 content:encoded.
【解决方案2】:

我意识到这个线程已经相当老了,但它是使用 jquery 搜索时在 google 中出现的第一个线程。进行搜索的最简单方法是:

.find('[nodeName="content:encoded"]')

希望对某人有所帮助。我花了最后几个小时试图找出一种访问这些标签的简单方法。

【讨论】:

  • 已经有一段时间了,但这对我来说效果很好。谢谢!
【解决方案3】:

.find('[nodeName="content:encoded"]') 在 Chrome 和一些旧版浏览器中运行良好。

【讨论】:

    【解决方案4】:

    这是我从搜索中得到的

    jQuery 选择器不是 命名空间感知,所以他们只使用 getElementsByTagName(而不是 getElementsByTagNameNS) 来检索 元素的 nodeName 属性 (而不是通过 localName 和 命名空间URI)。

    看起来您需要使用document.getElementsByTagNameNS(namespace, tagname) 在常规 js 中执行此操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多