我有XSLT,比如:
<xsl:variable name="letter">
<xsl:value-of select="@display_value"/>
</xsl:variable>我用的地方是:
<xsl:value-of select="$letter"/> 但这增加了额外的空间。我想使用xsl:text,但它不需要变量。
关于如何摆脱这个空间,你有什么建议吗?
发布于 2013-11-15 19:09:57
最好向我们展示示例输入XML和输出XML。如果没有这一点,人们可能会猜测输入XML中的@display_value有比您希望的更多的空白。定义normalize-space()时可以使用letter
<xsl:variable name="letter">
<xsl:value-of select="normalize-space(@display_value)"/>
</xsl:variable>或者当你使用它时:
<xsl:value-of select="normalize-space($letter)"/>但是,请注意,normalize-space()与其他语言中的trim不一样,因为它将减少内部的重复空格,而不仅仅是字符串的末端。
也见"How to Trim in XSLT“。
更新OP:的新注释
另一种可能性(显然是--本例中的原因)是,$letter输出的上下文具有很大的空白,而错误地将其归因于$letter本身。改变这种情况:
[
<xsl:value-of select="$letter"/>
]对此:
<xsl:text>[</xsl:text>
<xsl:value-of select="$letter"/>
<xsl:text>]</xsl:text>帮助解决了问题。
https://stackoverflow.com/questions/20008563
复制相似问题