开发者

XSLT: how to ignore unnecessary white space?

Given this example XML file:

<doc>
<tag>

    Hello !

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

And the following XSLT sheet:

<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>

How should I change it in order to ignore line feeds and convert any group of white-space characters to just one space in the items? In other words, I would like to obtain:

Hello!
My name is John

Without all those those silly line fee开发者_JAVA技巧ds. ...the question is how.

Thanks in advance !


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

In fact, there is a good post about it.


The normalize-space function returns the argument string with whitespace normalized by stripping leading and trailing whitespace and replacing sequences of whitespace characters by a single space. If the argument is omitted, it defaults to the context node converted to a string, in other words the string-value of the context node.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜