Xslt 使用XSL转换XML文件会在未选择元素的位置留下空白
当我运行XSL来选择XML文件的某些元素时,我在生成的输出中得到了未选择元素的空白 e、 g.如果我将以下内容转化为只得到黑猫:Xslt 使用XSL转换XML文件会在未选择元素的位置留下空白,xslt,Xslt,当我运行XSL来选择XML文件的某些元素时,我在生成的输出中得到了未选择元素的空白 e、 g.如果我将以下内容转化为只得到黑猫: <cats> <cat> <name>Steve</name> <color>black</color> </cat> <cat> <name>Tom</name> <color>tabby</color>
<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本身中是可控的,还是我正在使用的工具的“功能”?这在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中,
和
之间有空格元素(例如换行符、回车符),等等。通过文本节点和输出的内置模板匹配这些内容。
元素从输入中删除不重要的空白。然后需要在
元素中设置indent=“yes”
,以实现所需的缩进