使用Vanilla JavaScript解析script标签内嵌XML失败,求排查原因
问题原因及解决方案
核心问题出在XML内容的获取方式上:你使用了innerText提取<script>标签内的XML文本,但innerText会遵循浏览器的文本渲染规则处理内容——比如自动合并连续空白、去除换行符,这会破坏XML的原始结构,导致DOMParser无法正确解析。
正确的做法是改用textContent,它会完整保留<script>标签内的所有原始字符(包括换行、缩进空格),确保XML结构的完整性。
修正后的JavaScript代码:
const xmlStr = document.getElementById('xml').textContent; const xmlDoc = new DOMParser().parseFromString(xmlStr,'text/xml'); console.log(xmlDoc.getElementById('bar').textContent);
你可以通过console.log(xmlStr)分别对比innerText和textContent的返回结果,就能直观看到差异:innerText返回的是经过渲染优化后的文本,而textContent返回的是和HTML中完全一致的原始XML代码。
内容的提问来源于stack exchange,提问作者Fravadona
相关产品推荐
相关产品推荐

