代码之家  ›  专栏  ›  技术社区  ›  Jack Roscoe

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

  •  24
  • Jack Roscoe  · 技术社区  · 14 年前

    this 这个问题已经存在了,但没有给我带来好运。

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

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

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

    3 回复  |  直到 7 年前
        1
  •  69
  •   Tim Down    10 年前

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

    由于jquery1.5,您可以使用 jQuery.parseXML() ,其工作方式与上述代码完全相同:

    var xmlDoc = jQuery.parseXML("<foo>Stuff</foo>");
    if (xmlDoc) {
        window.alert(xmlDoc.documentElement.nodeName);
    }
    
        2
  •  6
  •   artrol    10 年前
        3
  •  3
  •   patrickmcgraw    14 年前

    $(xmlStringFromDB).find('foo');