jQuery解析RSS和命名空间元素,如<content:encoded> </content:encoded>

时间:2009-10-13 11:34:49

标签: javascript jquery rss parsing encode

我正在使用jQuery来解析RSS提要。每个<item>内都有一个名称空间的元素,例如我要选择的<content:encoded>。如何在jQuery中选择它?

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

4 个答案:

答案 0 :(得分:6)

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

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

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

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

答案 1 :(得分:3)

我意识到这个帖子已经相当陈旧了,但它是第一个在google搜索时使用jquery出现的。最简单的搜索方式是:

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

这是我从搜索中得到的

  

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

看起来您需要使用document.getElementsByTagNameNS(namespace, tagname)

在常规js中执行此操作