我想使用 XSLT 将 XML 文档转换为 XML 文档。一些节点的格式如下:
<node attrZ="..."
attrB="Hello 'FooBar'"
xmlns="..."/>
在使用 xsltproc 的转换过程之后,它看起来像:
<node xmlns="..." attrB="Hello 'FooBar'" attrZ="..."/>
这发生在所有节点上:
<xsl:output method="xml" version='1.0' indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() |@*"/>
</xsl:copy>
</xsl:template>
是否可以抑制属性的重新格式化(顺序、换行符、...)、属性中的字符转义或更改“untouch”/复制节点的缩进?
谢谢
安德烈亚斯
答案 0 :(得分:3)
答案是否定的。 XSLT 处理器不知道属性最初出现的顺序(XML 解析器不提供此信息),因此它不可能保留此顺序。
这里的撇号转义有点笨拙(因为没有必要),不同的 XSLT 处理器可能更聪明;类似地,其他处理器的缩进算法可能更聪明,但基本上这是您无法控制的 - 这应该无关紧要。