Re: [xsl] Move leading/trailing spaces outside (XSLT 2.0)

Subject: Re: [xsl] Move leading/trailing spaces outside (XSLT 2.0)
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Tue, 06 Feb 2007 15:22:55 +0100
Yves Forkl wrote:

I'm looking for an elegant XSLT 2.0 solution to this tiny problem. When processing

<e> one</e>
<e>two </e>
<e> three </e>

I want to separate the leading and trailing spaces from the rest of the content but keep them in the output as text nodes,

This should do:


<xsl:template match="e">
  <xsl:analyze-string select="." regex="^\s+">
    <xsl:matching-substring>
      <xsl:value-of select="."/>
    </xsl:matching-substring>
    <xsl:non-matching-substring>
      <xsl:analyze-string select="." regex="\s+$">
        <xsl:matching-substring>
         <xsl:value-of select="."/>
        </xsl:matching-substring>
        <xsl:non-matching-substring>
          <e><xsl:value-of select="."/></e>
        </xsl:non-matching-substring>
      </xsl:analyze-string>
    </xsl:non-matching-substring>
  </xsl:analyze-string>
</xsl:template>

--

Martin Honnen

Current Thread