gpt4 book ai didi

xslt - 在 XSLT 2.0 转换期间保留字符十六进制代码

转载 作者:行者123 更新时间:2023-12-02 03:42:40 25 4
gpt4 key购买 nike

我有以下 XML:

<root>
<child value="&#xFF;&#xEF;&#x99;&#xE0;"/>
</root>

当我进行转换时,我希望保留字符十六进制代码值。因此,如果我的转换只是一个简单的 xsl:copy 并且输入是上面的 XML,那么输出应该与输入相同。

我已经阅读了 saxon:character-representation功能,但现在我使用的是 Saxon-HE 9.4,所以我无法使用该功能,而且我什至不能 100% 确定它会做我想做的事。

我还阅读了 use-character-maps .这似乎解决了我的问题,但我宁愿不在我的转换中添加一个巨大的映射来捕获每个可能的字符十六进制代码。

<xsl:character-map name="characterMap">
<xsl:output-character character="&#xA0;" string="&amp;#xA0;"/>
<xsl:output-character character="&#xA1;" string="&amp;#xA1;"/>
<!-- 93 more entries... &#xA1; through &#xFE; -->
<xsl:output-character character="&#xFF;" string="&amp;#xFF;"/>
</xsl:character-map>

还有其他方法可以保留字符十六进制代码吗?

最佳答案

XSLT 处理器不知道字符在输入中是如何表示的——这一切都由 XML 解析器处理。所以它不能复制原件。

如果您想使用数字字符引用输出所有非 ASCII 字符,无论它们在输入中如何表示,请尝试使用 xsl:output encoding="us-ascii"。

如果你真的需要保留原始表示——我看不出任何人需要这样做的任何合理理由——那么试试 Andrew Welch 的 lexev,它在途中将所有实体和字符引用转换为处理指令在出路时返回实体/角色引用。

关于xslt - 在 XSLT 2.0 转换期间保留字符十六进制代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19124047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com