如何在JavaScript中将字符串转换为XML对象?

Jac*_*coe 26 javascript xml jquery

我知道这个问题已经存在,但它没有给我带来任何好运.

我有一个应用程序通过以下方法加载一个物理XML文档:

jQuery.ajax({
    type: "GET",
    url: fileName,
    dataType: "xml",
    success: function (data) {
        // etc...
    }
});
Run Code Online (Sandbox Code Playgroud)

我解析XML并将其转换为一个字符串,该字符串保存到变量中,以便可以轻松地存储在数据库中.我现在如何将此变量中的数据转换回XML对象,以便可以对其进行解析?

Tim*_*own 66

非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 xmlDoc = parseXml("<foo>Stuff</foo>");
if (xmlDoc) {
    window.alert(xmlDoc.documentElement.nodeName);
}
Run Code Online (Sandbox Code Playgroud)

从jQuery 1.5开始,你可以使用它jQuery.parseXML(),它的工作方式与上面的代码完全相同:

var xmlDoc = jQuery.parseXML("<foo>Stuff</foo>");
if (xmlDoc) {
    window.alert(xmlDoc.documentElement.nodeName);
}
Run Code Online (Sandbox Code Playgroud)

  • +1这不仅仅是非jQuery,它实际上解析了XML,与jQuery解析器不同. (4认同)

小智 5

使用jQuery,您可以使用$.parseXML(str)https://api.jquery.com/jQuery.parseXML/