2010-03-23 40 views
1

鑑於此示例XML文件:XSLT:如何忽略不必要的空白?

<doc> 
<tag> 

    Hello ! 

</tag> 
<tag> 
    My 
    name 
    is 
    John 
</tag> 
</doc> 

而下面的XSLT表:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <xsl:for-each select="doc/tag"> 
     <xsl:value-of select="."/> 
    </xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 

我應該如何改變它以忽略換行,並轉換成任何組的空白字符只項目中有一個空間?換句話說,我想獲得:

Hello! 
My name is John 

沒有那些愚蠢的行提要。 ...問題是如何。

提前致謝!

回答

3
<xsl:template match="tag"> 
    ... 
    <xsl:value-of select="normalize-space(.)" /> 
    ... 
</xsl:template> 

實際上,有一個關於它的good post

1

normalize-space函數返回參數字符串和空白字符,空白字符通過去除前導和尾部空白以及用一個空格替換空白字符序列來標準化。如果省略參數,則默認將上下文節點轉換爲字符串,換句話說就是上下文節點的字符串值。

<xsl:value-of select="normalize-space()"/>