gpt4 book ai didi

javascript - jQuery 不会解析带有称为选项的节点的 xml

转载 作者:数据小太阳 更新时间:2023-10-29 01:53:57 26 4
gpt4 key购买 nike

我正在使用 jQuery 来解析一些 XML,如下所示:

function enumOptions(xml) {
$(xml).find("animal").each(function(){
alert($(this).text());
});
}

enumOptions("<root><animal>cow</animal><animal>squirrel</animal></root>");

这很好用。但是,如果我尝试查找名为“option”的节点,则它不起作用:

function enumOptions(xml) {
$(xml).find("option").each(function(){
alert($(this).text());
});
}

enumOptions("<root><option>cow</option><option>squirrel</option></root>");

没有错误,只是没有任何提示,就好像 find 没有找到任何东西。它只对称为选项的节点执行此操作,我测试的其他所有内容都正常!

我使用的是当前版本的 jQuery - 1.4.2。

有人知道吗?

TIA。

背景

最佳答案

更新

jQuery 现在内置了这个方法。你可以使用

$.parseXML("..")

从字符串构造 XML DOM。


jQuery 依赖于使用 innerHTML 的 HTML DOM 来解析文档,当标签名称与 HTML 中的标签名称冲突时,可能会产生不可靠的结果。

相反,您可以使用适当的 XML 解析器先解析文档,然后使用 jQuery 进行查询。下面的方法将以跨浏览器的方式解析有效的 XML 文档:

// http://www.w3schools.com/dom/dom_parser.asp
function parseXML(text) {
var doc;

if(window.DOMParser) {
var parser = new DOMParser();
doc = parser.parseFromString(text, "text/xml");
}
else if(window.ActiveXObject) {
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(text);
}
else {
throw new Error("Cannot parse XML");
}

return doc;
}

一旦构建了 XML DOM,jQuery 就可以正常使用 - http://jsfiddle.net/Rz7Uv/

var text = "<root><option>cow</option><option>squirrel</option></root>";
var xml = parseXML(text);
$(xml).find("option"); // selects <option>cow</option>, <option>squirrel</option>

关于javascript - jQuery 不会解析带有称为选项的节点的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com