开发者

XSLT: how to ignore unnecessary white space?

开发者 https://www.devze.com 2022-12-24 01:34 出处:网络
Given this example XML file: <doc> <tag> Hello ! </tag> <tag> My name is John </tag>

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

精彩评论

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

关注公众号