xsl-list
[Top] [All Lists]

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

2007-02-06 07:00:34
I would do

<xsl:template match="e">
  <xsl:analyze-string select="." regex="^\s*.*?\s*$">
    <xsl:matching-substring>
      <xsl:value-of select="regex-group(1)"/>
      <e><xsl:value-of select="regex-group(2)"/></e>
      <xsl:value-of select="regex-group(3)"/>
    </
  </
</

Not tested.

Michael Kay
http://www.saxonica.com/
     

-----Original Message-----
From: Yves Forkl [mailto:Y(_dot_)Forkl(_at_)srz(_dot_)de] 
Sent: 06 February 2007 13:51
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Move leading/trailing spaces outside (XSLT 2.0)

Hi,

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, like if I was saying in XSLT

<xsl:text> </xsl:text><e>one</e>
<e>two</e><xsl:text> </xsl:text>
<xsl:text> </xsl:text><e>three</e><xsl:text> </xsl:text>

normalize-space() won't tell me how much spaces it removed, 
and there must be a less awkward way than using xsl:choose 
with 3 clauses...

Any suggestions? Should I try with tokenize() or matches()?

   Yves

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--