我有一个尾随的空白区域,我很好奇如何摆脱,尝试了几种不同的方法。这是代码。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output
indent="no"
method="text"/>
<xsl:template match="/">
Famous Mountains of the World
<xsl:apply-templates />
</xsl:template>
<xsl:template match="mountain">
Mountain Name:<xsl:value-of select="name[@language='English'] "/>
Mountain Name:(<xsl:value-of select="name[@language='PigLatin'] "/>)
Location:<xsl:value-of select="location"/>
Height:<xsl:value-of select="height"/></xsl:template>
</xsl:stylesheet>
我是如何试图让它熄灭的。
Mountain Name:Mount Everest
Mountain Name:(ountMa verestEa)
Mountain Name:Mount Ranier
Mountain Name:()
Mountain Name:Mount St. Helens
Mountain Name:()
取而代之的是:
Mountain Name:Mount Everest
Mountain Name:(ountMa verestEa)
Mountain Name:Mount Ranier
Mountain Name:()
Mountain Name:Mount St. Helens
Mountain Name:()
或
Mountain Name:Mount Everest
Mountain Name:(ountMa verestEa)
Mountain Name:Mount Ranier
Mountain Name:()
Mountain Name:Mount St. Helens
Mountain Name:()
如果我使用xsl:text和xsl:strip-space elements =“*”hasnt帮助处理缩进。
关于如何摆脱额外空间的任何想法?任何帮助都将是一个很大的帮助。一直在烦我。
答案 0 :(得分:1)
可能是您的XSLT中的换行符被解释为输出中的文字换行符。尝试在xsl:text
中包装文本输出或在concat()
中使用xsl:value-of
。
例如,而不是:
Mountain Name:<xsl:value-of select="name[@language='English'] "/>
尝试以下方法:
<xsl:text>Mountain Name:</xsl:text>
<xsl:value-of select="name[@language='English'] "/>
或者这个:
<xsl:value-of select="concat('Mountain Name:',name[@language='English'])"/>
答案 1 :(得分:-1)
尝试在<xsl:stylesheet>
标记内添加<xsl:strip-space elements="*"/>
。告诉xslt剥离空间不会导致它剥离所有空白,但我认为它会实现你想要的。要更精细地控制空格,您可以为其指定特定元素的列表,甚至使用normalize-space()
xpath谓词。