jquery和xml问题

时间:2010-08-18 15:44:48

标签: jquery xml

我有一些类似

的xml
<entry>
    <a>a</a>
    ...
    <subelement>
        <b>b</b>
         .... 
    </subelement>
</entry>

如果我做$(条目).find('whatIAmLookingFor')

当这些元素嵌套在子元素中时,它适用于某些元素,但不适用于其他元素。

我可以通过

来实现它
$(entry).find('subelement').children()[indexofwhatiamlookingfor].textContent;

在Firebug中,但显然这是一个黑客......

为什么'找'会在子元素中找到一些元素而不是其他元素?我让另一位开发人员看看这个,以确保我的元素名称正确(没有胖手指问题)。

2 个答案:

答案 0 :(得分:2)

jQuery不解析XML。您可以使用以下简单函数来执行此操作,并使用jQuery在文档上执行常规查询:

var parseXml;

if (window.DOMParser) {
    parseXml = function(xmlStr) {
        return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
    };
} else if (typeof window.ActiveXObject != "undefined" &&
        new window.ActiveXObject("Microsoft.XMLDOM")) {

    parseXml = function(xmlStr) {
        var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(xmlStr);
        return xmlDoc;
    };
} else {
    parseXml = function() { return null; }
}

var xml = parseXml("<foo>Stuff</foo>");
if (xml) {
    var $xmlDoc = $(xml);
    window.alert($xmlDoc.find("foo")[0].nodeName);
}

答案 1 :(得分:0)

我没有亲自尝试过,但可能值得查看jParse XML parsing plugin