我可以通过XSLT将控制字符放在XML中吗?

时间:2009-09-11 09:06:14

标签: xml xslt control-characters

我有以下问题:我有一个XML和一个XSLT文件来处理它并生成输出。

此进程的输出应包含控制字符“0B”。据我所知,XML没有嵌入控制字符,所以我该如何实现呢?

3 个答案:

答案 0 :(得分:2)

结果是否是XML文件?如你所说,XML不允许字符U + 000B。因此,根据定义,包含该字符的任何文件都不是有效的XML文件。这里的大局是什么?你为什么需要这个角色?您可以选择哪些替代方案?

如果您尝试根据XSLT转换创建文本文件,则这是另一回事。

答案 1 :(得分:0)

在添加到XML文档之前,您还可以将包含0x0B的有效负载编码为Base64

这将依赖于输出转换的消费者能够从Base64转换回原始编码。

答案 2 :(得分:0)

如果相关的XML格式支持这样的字符,我希望它们驻留在支持CDATA的某个元素中。

你能把你的角色放在CDATA部分吗? XSLT有一个用于创建CDATA部分的构造(< xsl:cdata>)。在里面,您可以使用XML实体引用< xsl:entity-ref />对字符进行编码。

读取XML文件的解析器应该能够将这些entityref转换为适当的字符。