我正在创建一个 Windows 8 JavaScript 应用程序,我需要转换一个字符串,如下所示:
<p>
blah blah blah
</p>
<div>
<p>
random dom stuff
</p>
</div>
进入 XML DOM 对象,这样我就可以使用 DOM 方法(即 getElementByID()
)遍历它。
我尝试了两种方法
//retrieve text to process
var content = xml.querySelector("api > parse > text").textContent;
//1
var contentXML = new DOMParser().parseFromString(content, "text/xml");
//2
var newContentXML = new ActiveXObject("Microsoft.XMLDOM");
newContentXM.async = false;
newContentXM.loadXML(content);
都失败了。 #1 仅允许一个根元素。
,#2 自动化服务器无法创建对象。无法加载类 ID 为“{2933BF90-7B36-11D2-B20E-00C04F983E60}”的 ActiveX 插件。应用程序无法加载 ActiveX 控件。
我看过的所有地方都说 #2 是您应该如何在 IE 中执行此操作,并且我假设 W8 JS 应用程序使用与 IE 相同的 JavaScript 引擎。
如何将文本转换为 XML DOM 对象?
最佳答案
DOMParser 没问题,错误也准确。 parseFromString 返回文档的实例,但您的文本没有定义单个文档根,它是两个的串联:一个段落和一个 div。
以下内容将起作用:
<div>
<p>
blah blah blah
</p>
<div>
<p>
random dom stuff
</p>
</div>
</div>
顺便说一下你的原始字符串,
- Chrome 的 DOMParser 实现也会抛出错误“文档末尾有额外内容”
- Firefox 产生“XML 解析错误:文档元素后出现垃圾。”
关于javascript - 在 Windows 8 Javascript 应用程序中将 XML 的字符串表示形式转换为 XML DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13659468/