Skip to content
陈广亮的技术博客
Go back

JS 解析 XML 兼容 IE 与其他浏览器

IE 中使用 ActiveXObjectloadXML 方法解析 XML,其他浏览器可以使用 DOMParser

function loadXml(text) {
  var XMLDoc = null;
  if (window.ActiveXObject) {
    XMLDoc = new ActiveXObject("MSXML2.DOMDocument.6.0");
    XMLDoc.async = false;
    XMLDoc.validateOnParse = true;
    XMLDoc.loadXML(text);
  } else {
    var parseXml = new DOMParser();
    XMLDoc = parseXml.parseFromString(text, "text/xml");
    Node.prototype.selectSingleNode = function (node) {
      if (this.getElementsByTagName(node).length) {
        var child = this.getElementsByTagName(node)[0];
        child.text = child.innerHTML;
        return child;
      }
      return null;
    };
  }
  return XMLDoc;
}

var XMLDoc = loadXml("<doc><test>ttt</test></doc>");
var text = XMLDoc.documentElement.selectSingleNode("test").text; // "ttt"

Share this post on:

Previous Post
JS 运算符 == 与 ===
Next Post
Node 中使用 Markdown 与 highlight.js