我查看了this question,我理解在处理ajax响应时,可以指示IE10创建一个msxml文档而不是原生XML文档。这是为了使用传统的xpath方法,例如selectSingleNode。
但是,在我的情况下,我不是从ajax响应中读取XML,而是从javascript中的原始文本中读取它。例如,这是一个适用于大多数浏览器的代码片段:
var xmlString = "<a><b>some data</b></a>";
vor xmlDocument = new DOMParser().parseFromString(xmlString, "text/xml");
在IE10中,DOMParser返回原生XML文档。为了获得MSXML文档,我可以做些什么不同的方式,类似于使用ajax完成的方式?
答案 0 :(得分:0)
您必须使用ActiveXObject
显式创建解析器的实例:
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = 'false';
xmlDocument.loadXML(xmlString);
alert(xmlDocument.selectSingleNode('//a/b').text);
另见
PS。如果您需要测试ActiveXObject
是否可用,请查看window.ActiveXObject difference in IE11,测试window.ActiveXObject !== undefined
似乎工作正常。