我有以下问题:我有一个XML和一个XSLT文件来处理它并生成输出。我可以通过XSLT将控制字符置于XML吗?
该进程的输出应该包含一个控制字符'0B'。据我所知,XML不嵌入控制字符,所以我怎么做到这一点?
我有以下问题:我有一个XML和一个XSLT文件来处理它并生成输出。我可以通过XSLT将控制字符置于XML吗?
该进程的输出应该包含一个控制字符'0B'。据我所知,XML不嵌入控制字符,所以我怎么做到这一点?
结果是否意味着是XML文件?正如你所说,XML不允许字符U + 000B。因此,根据定义,任何包含该字符的文件都不是有效的XML文件。这里的大图是什么?你为什么需要那个角色?你可以选择哪些替代方案?
如果您尝试创建文本文件作为XSLT转换的结果,则这是另一回事。
在添加到XML文档之前,您还可以编码包含0x0B到Base64的有效负载。
这将依赖于您的输出转换的使用者能够从Base64转换回原始编码。
生成的XML文档从XSL文件获取其硬编码值 – 2009-09-11 09:18:28
如果相关的XML格式支持这些字符,我希望它们驻留在某些支持CDATA的元素中。
你可以把你的角色放入CDATA部分吗? XSLT有一个用于创建CDATA节的构造(< xsl:cdata >)。在内部,您可以使用XML实体引用编码您的角色< xsl:entity-ref/>。
读取您的XML文件的解析器应该能够将这些entityrefs转换为适当的字符。
我需要把它转换成XML文档,然后把这个文档转换成Java Object(jPOS ISOMessage Object通过网络发送) XML文件的值之一应该是U + 000B,是否可能? – 2009-09-11 09:17:32
不是没有逃避,没有。你可以选择另一个你不会在别处使用的“特殊”(但支持)字符,然后恰当地在两个字符之间切换。相当可怕,但它会奏效。 – 2009-09-11 09:20:04
您的意思是在XSLT中,我将生成的XML的值设置为支持特定字符而不是U + 000B,然后当转到使用此XML文件的代码时,我将此字符的值更改回U + 0000B? – 2009-09-11 09:29:54