在支持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以下的错误