尾随白色空间

时间:2014-03-19 01:23:29

标签: xml xslt xslt-1.0 removing-whitespace

我有一个尾随的空白区域,我很好奇如何摆脱,尝试了几种不同的方法。这是代码。

<?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帮助处理缩进。

关于如何摆脱额外空间的任何想法?任何帮助都将是一个很大的帮助。一直在烦我。

2 个答案:

答案 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谓词。

相关问题