jQuery 解析 RSS 和命名空间元素,例如
我正在使用 jQuery 来解析 RSS 提要。在每个
中都有一个命名空间元素,例如我想要选择的
。如何在 jQuery 中选择它?
$(xml).find('item') works but $(xml).find('item content') does not.
I am using jQuery to parse an RSS feed. Within each <item>
is a namespaced element like <content:encoded>
I want to select. How do I select it in jQuery?
$(xml).find('item') works but $(xml).find('item content') does not.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你是通过 Ajax 加载 xml 吗?然后,确保服务器将内容类型设置为“text/xml”而不是“text/html”。
还要确保您想要的元素的标签名称确实是内容而不是其他内容(例如 content:encoded)。在这种情况下,请尝试:
特殊字符,如 : 需要在 jQuery 选择器中转义。
Are you loading the xml via Ajax? Then, make sure that the server sets the content type as 'text/xml' and not 'text/html'.
Also make sure that the tag name of the element you want is indeed content and not something else (like content:encoded). In that case try:
Special characters like : need to be escaped in jQuery selectors.
我意识到这个线程相当古老,但它是使用 jquery 搜索此线程时在 google 中出现的第一个线程。进行搜索的最简单方法是:
希望对某人有帮助。我花了最后几个小时试图找到一种访问这些标签的简单方法。
I realize this thread is fairly old but it is the first one that comes up in google when searching for this with jquery. The easiest way to do the search is with:
Hope that helps someone. I spent the last few hours trying to figure out a simple way to access those tags.
.find('[nodeName="content:encoded"]')
它在 Chrome 和一些较旧的浏览器中运行良好。.find('[nodeName="content:encoded"]')
it does works fine in Chrome and some older browsers.这是我从搜索中得到的
看起来您需要使用
document.getElementsByTagNameNS(namespace, tagname)
在常规 js 中执行此操作This is what I got from a search
Looks like you need to do it in regular js by using the
document.getElementsByTagNameNS(namespace, tagname)