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