jquery - 在 jQuery 中使用/不使用 parseXML 来解析 XML?

标签 jquery xml parsexml

两者都可以工作...那么为什么我需要 parseXML

var x='<a>\
<item k="1" p1="aaa" />\
<item k="2" p1="bbb" />\
</a>';


alert($($.parseXML(x)).find("item[k='1']").attr('p1')); //aaa

alert($(x).find("item[k='1']").attr('p1')); //aaa

http://jsbin.com/ukahum/2/edit

最佳答案

$.parseXML 函数将使用 DOMParser 或 IE 中类似的东西。

因此它将返回一个真实的 xml 对象,因此它将包含诸如 xml 版本之类的内容 ($.parseXML(xml).xmlVersion)。

如果你有这样的 xml:

<?xml version="1.0" encoding="UTF-8" ?>
<ok>
    <yes>true</yes>
</ok>

并使用你的第二个例子,你会得到这个:

[
<!--?xml version="1.0" encoding="UTF-8" ?-->
, 
<ok>​…​</ok>​
]

因此,如果您尝试执行 $(xml).find("ok") 现在它不会找到任何内容,因为 ok 是父标记,并且如果您执行 $(xml). first() 你会得到一条评论,我认为这不太好。

但是如果您使用第一个示例,您将获得一个文档作为父标记:

[#document]

这样你就可以得到 ok 标签,如下所示: $($($.parseXML(xml)).find("ok") 没有问题,并且获胜不要将注释作为第一个节点。

关于jquery - 在 jQuery 中使用/不使用 parseXML 来解析 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10227740/

相关文章:

javascript - 隐藏默认浏览器滚动条不溢出 :hidden when using Perfect Scrollbar

c# 列表内列表 XML Linq

ASP.NET 3.5 绑定(bind)到 XML 字符串

javascript - `$xml = $( xmlDoc )` 是做什么的?

javascript - onclick 定义的 text-var 在日志上返回空字符串

jquery - 如何使 Twitter Bootstrap Glyphicons 与 Wordpress 一起工作?

javascript - 全日历中的工具提示不起作用

xml - XSLT为每个组迭代的集合的大小

javascript - jQuery $.parseXML 不适用于 Chrome 或 FireFox

java - 如何处理org.xml.sax.SAXParseException?