使用jQuery解析XML之类的内容

时间:2010-06-30 18:06:38

标签: jquery xml parsing

我从一个输入值获得此内容:

var xml_url  = $("input").val();
alert(xml_url);

输出:

<trans>
    <result>
        <item1>1</item1>
        <item2>content</item2>
        <item3>NA</item3>
        <item4>0</item1>
    </result>
</trans>

结构是一个XML文件。我想得到这些数据。

我有这段代码:

<script language="javascript">
    $(document).ready(function(){
        var xml_url  = $("input").val();
          $(xml_url).find("result").each(function()  
          {         
            alert($(this).find("item3').").text());
          });
    });
</script>

它在firefox中工作正常,但在IE7 / 8中没有。

有什么建议吗? 非常感谢。

1 个答案:

答案 0 :(得分:2)

永远不要依赖jQuery来解析XML。

使用适当的解析器来完成这项工作,然后使用jQuery查找所需的节点。您提供的示例适用于Firefox,但不适用于Chrome,Safari或IE。下面的函数将从字符串构造XML文档。

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;
}

用作:

// Parse and construct a Document object
var xml = parseXML(xml_url);

// Use jQuery on the object now
$(xml).find("result").each(function()  
{
    alert($(this).find("item3").text());
});