字符串中的 XML 或 HTML 解析为一个 DOM Document,获取标签内部的值

考虑两种情况: 非IE环境, 和 IE环境(IE11)要单独考虑

非 IE环境
  • DOMParser 可以将存储在字符串中的 XML 或 HTML 源代码解析为一个 DOM Document。
parser = new DOMParser();
doc = parser.parseFromString(stringContainingHTMLSource, "text/html")
// 返回一个 HTMLDocument 对象,同时也是一个 Document 对象。
let a  = doc.getElementByTagName('xx')[0].firstChild.nodeValue; // 返回当前节点的值
console.log(a)
IE环境
  • Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.loadXML(text); 
// 此时的xml为一个xmldocument对象
  • IE11中 window.ActiveXObject 是存在的, window.DOMParser为undefined
兼容性写法

unction loadXML(xmlString) {
  var xmlDoc = null;
  // ie浏览器, ie11
  if (!window.DOMParser && window.ActiveXObject  || window.ActiveXObject) {
    //window.DOMParser �ж��Ƿ��Ƿ�ie�����
    var xmlDomVersions = [
      "MSXML.2.DOMDocument.6.0",
      "MSXML.2.DOMDocument.3.0",
      "Microsoft.XMLDOM"
    ];
    for (var i = 0; i < xmlDomVersions.length; i++) {
      try {
        xmlDoc = new ActiveXObject(xmlDomVersions[i]);
        xmlDoc.async = false;
        xmlDoc.loadXML(xmlString); 
        break;
      } catch (e) {}
    }
  }
  //֧非IE浏览器,Mozilla 火狐
  else if (
    window.DOMParser &&
    document.implementation &&
    document.implementation.createDocument
  ) {
    try {
        let parser;
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(xmlString, "text/xml");
    } catch (e) {}
  }  else {
    return null;
  }
  return xmlDoc;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值