javascript – jQuery不会使用名为option的节点解析xml

前端之家收集整理的这篇文章主要介绍了javascript – jQuery不会使用名为option的节点解析xml前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

enumOptions("

这非常有效.但是,如果我尝试寻找称为“选项”的节点,那么它不起作用:

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

enumOptions("

没有任何错误,只是没有得到任何警报,好像找不到任何东西.它只适用于名为选项的节点,其他一切我测试的工作正常!

我正在使用当前版本的jQuery – 1.4.2.

有人有什么想法?

TIA.

BG

最佳答案
更新

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 = "
原文链接:https://www.f2er.com/jquery/428865.html

猜你在找的jQuery相关文章