我正在使用xslt对xml文件进行一些小的转换(特别是xsltproc,但应该是无关紧要的,对吧?)。使用输出标记,我可以控制编码等内容,或者它是否是一个独立的xml文件。例如:
<xsl:output indent="yes" encoding="UTF-8"/>
但是如果我想保留编码,或者它是否在不同的输入上是独立的呢?其中一些输入可能有不同的编码,或者某些独立的xml文件,有些则没有。由于xml文件的头标记处理方式不同,而不是树的一部分,因此我无法访问它的任何内容。有没有办法做到这一点,或者这是否超出了xslt的范围?
答案 0 :(得分:1)
它超出了XSLT的范围--XSLT在解析文档的XDM(XPath数据模型)树结构上运行,它不知道原始XML的编码(甚至是最初是否解析了树)来自字节流或以编程方式构造),特定字符是表示为文字(>
),实体引用(>
)还是字符引用(>
),属性中的空格开始标记,属性出现的顺序等。