XSLT 在输出到 DOM 时将 <image> 节点转换为 <img> 标签

问题描述 投票:0回答:1

现在是 2024 年,我正在开发一个融合 XSLT 技术的项目。

我想出了一种简单的方法来访问使用 javascript 转换的 XML 文件,但将其输出到隐藏的 div,然后使用 JS 中的 XMLParser 解析它的内容。

<div class="hidden">
    <xsl:copy-of select="/*" />
</div>

到目前为止一切正常,我可以使用 querySelector 和属性访问节点。 我刚刚注意到的唯一问题 - 如果 XML 文件有图像节点,它将被转换为 img

类似这样的事情:

<div class="hidden">
    <object>
        <image>link</image>
    </object>
</div>

转换为

<div class="hidden">
    <object>
        <img>link
    </object>
</div>

这是完全错误的并且破坏了解析。它只发生在这个节点上。 我真的不知道是什么原因造成的 - 我正在使用 IE11 兼容模式来转换 XSLT 内容 - 有什么方法可以阻止它这样做吗?我显然无法修改 XML,因为它来自后端。

xml xslt internet-explorer-11
1个回答
0
投票

我认为这与 XSLT 没有任何关系,如果您让 HTML 解析器像您所展示的那样解析标记,那么它会解析为包含 HTML

object
元素的 HTML
img
元素。

document.getElementById('test').innerHTML = `<object><image><\/image><\/object>`;
console.log(document.getElementById('test'));
console.log(document.getElementById('test').outerHTML);
<div id="test"></div>

所以不要指望能够通过将 XML 解析为 HTML5 来解析和保留 XML。

© www.soinside.com 2019 - 2024. All rights reserved.