当我运行XSL来选择XML文件的某些元素时,我在生成的输出中会出现未选中元素的空白。
e.g。如果我改变以下只是为了得到黑猫:
<cats>
<cat>
<name>Steve</name>
<color>black</color>
</cat>
<cat>
<name>Tom</name>
<color>tabby</color>
</cat>
<cat>
<name>Archibald</name>
<color>black</color>
</cat>
</cats>
我可能会这样:
<cats>
<cat>
<name>Steve</name>
<color>black</color>
</cat>
<cat>
<name>Archibald</name>
<color>black</color>
</cat>
</cats>
这可以在XSL本身中控制,还是我正在使用的工具的“功能”?
答案 0 :(得分:2)
这在XSL中是可控的。您需要执行以下操作:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:strip-space elements="*"/>
....
</xsl:stylesheet>
这是因为在您的XML中,<cat>
和<name>
之间存在空白元素(例如换行符,回车符),依此类推。它们通过文本节点和输出的内置模板进行匹配。 <xsl:strip-space>
元素从您的输入中删除无关紧要的空格。然后,您需要在indent="yes"
元素中设置<xsl:output>
以实现您想要的缩进。