【问题标题】:How can I handle XML namespaces in CSS Selectors or in jQuery?如何在 CSS 选择器或 jQuery 中处理 XML 命名空间?
【发布时间】:2012-07-15 04:51:17
【问题描述】:

我使用 jQuery 来解析 RSS 提要。我可以使用 AJAX 成功获取 RSS 提要:

$.get("podcast.xml", function (data) {
    xml = $(data);
}, "xml");

现在我可以使用xml.find("channel > title").text() 获取播客的标题。如何在我的 RSS 提要中选择 <itunes:image> 标签?

xml.find("channel > itunes:image") 命令不起作用,因为: 在 CSS 中将标签名称和伪类分开。我也试过xml.find("channel > image"),但它不起作用。

如何在 CSS 选择器或 jQuery 中处理 XML 命名空间?

【问题讨论】:

标签: jquery css jquery-selectors css-selectors xml-namespaces


【解决方案1】:

CSS 允许您在样式表中指定 namespaces 以与 selectors 一起使用。

但是,jQuery 不支持这一点,因为您首先无法声明 XML 命名空间(因为 jQuery 除了借用其选择器语法之外与 CSS 无关),因此您必须将冒号视为一个文字字符,而不是像这样转义它:

xml.find("channel > itunes\\:image")

【讨论】:

    【解决方案2】:

    我想添加一些我刚刚探索过的有线内容:如果我在我的 rekonq 浏览器(使用 webkit)上尝试上面的代码,我无法通过搜索 xml.find("channel > itunes\\:image") 找到 <itunes:image> 标签。

    我必须省略术语itunes: 并且必须输入xml.find("channel > image")。所以我们有:

    xml.find("channel > itunes\\:image") /* Firefox */
    
    xml.find("channel > image") /* Rekonq (maybe also Safari and Chrome?!) */
    

    【讨论】:

    • 我没有看到这个答案,但如果这不是 WebKit 的另一个怪癖,我会被诅咒的。无论哪种方式,jQuery 都没有出现,也没有声称可以很好地支持 XML。
    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 2011-09-05
    • 2016-07-16
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 2010-09-21
    • 2013-04-11
    相关资源
    最近更新 更多