jQuery 解析 RSS 和命名空间元素,例如

发布于 2024-08-07 02:22:40 字数 243 浏览 7 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

鹊巢 2024-08-14 02:22:40

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

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

.find('item 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:

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

Special characters like : need to be escaped in jQuery selectors.

楠木可依 2024-08-14 02:22:40

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

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

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

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:

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

Hope that helps someone. I spent the last few hours trying to figure out a simple way to access those tags.

秋心╮凉 2024-08-14 02:22:40

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

.find('[nodeName="content:encoded"]') it does works fine in Chrome and some older browsers.

压抑⊿情绪 2024-08-14 02:22:40

这是我从搜索中得到的

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

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

This is what I got from a search

jQuery selectors are not
namespace-aware, so they only use
getElementsByTagName (rather than
getElementsByTagNameNS) to retrieve
elements by their nodeName attribute
(rather than by localName and
namespaceURI).

Looks like you need to do it in regular js by using the document.getElementsByTagNameNS(namespace, tagname)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文