将XML解析成DOM文档

在支持html5的浏览其中,可以使用标准解析器DOMParser对象进行解析html或者xml等字符串

var data = '<div></div>';
var tmp = new DOMParser();
xml = tmp.parseFromString(data, 'text/html');//解析xml时为text/xml

 这时xml就是需要的dom文档了,也就是说,可以把它当成一个document对象,调用其中的节点
如xml.getElementsByTagName('div');

在IE以外的浏览器中,如果解析失败,方法parseFromString不会跑出异常,返回的是这么一段包含parseerror节点的文档对象

但是在IE9+中,会抛出异常

IE9以下不支持DOMParser,在IE9以下,实现方式为

var xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = "false";
xml.loadXML(data);

该方法如果解析失败,会返回false,如果解析成功,返回true,结果保存在xml中,完整的方法

function parseXML(data) {
    var xml, tmp;
    try {
        if (window.DOMParser) {
            tmp = new DOMParser();
            xml = tmp.parseFromString(data, 'text/xml');
        } else {
            xml = new ActiveXObject("Microsoft.XMLDOM");
            xml.async = "false";
            xml.loadXML(data);
        }
    }  catch(e) {
        xml = undefined;
    }
    if (!xml || !xml.documentElement || xml.getElementsByTagName('parseerror').length) {
        return false;
    }
    return xml;
}

其中检测xml.documentElement是为了检测IE9以下的错误

 

 

转载于:https://www.cnblogs.com/strayling/p/3638688.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值