从localstorage加载并解析xml

时间:2012-08-29 15:36:04

标签: javascript xml local-storage

我有以下内容,它从网站加载XML并解析它:

function load() {
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = parse;
  xhttp.open('GET', 'http://...XML.xml', false);
  xhttp.send();
}

function parse() {
  xmlDoc = xhttp.responseXML.documentElement.childNodes;
  for (var i = 0; i < xmlDoc.length; i++) {
    nodeName = xmlDoc[i].nodeName;
    ...
}

加载后,我将它存储在localStorage中,我可以将其作为字符串检索。我需要能够将它转换回xml文档,如:

xmlDoc = xhttp.responseXML.documentElement.childNodes;

确实如此,所以我可以解析它。我一直在寻找一段时间,但无法弄明白。

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据这里的答案XML parsing of a variable string in JavaScript归功于@ tim-down

您需要创建XML解析器。然后将字符串传递给您的解析实例。然后你应该能够按照之前的方式查询它。

var parseXml;

if (typeof window.DOMParser != "undefined") {
    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 {
    throw new Error("No XML parser found");
}

使用示例:

var xml = parseXml("[Your XML string here]");