如何在IE10中手动创建msxml文档

时间:2013-11-17 11:14:43

标签: xml internet-explorer-10 msxml

我查看了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完成的方式?

1 个答案:

答案 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似乎工作正常。