我有以下问题:我有一个XML和一个XSLT文件来处理它并生成输出。
此进程的输出应包含控制字符“0B”。据我所知,XML没有嵌入控制字符,所以我该如何实现呢?
答案 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转换为适当的字符。