两者都可以工作...那么为什么我需要 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
最佳答案
$.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/