xsl-list
[Top] [All Lists]

Re: looping on a line (an XSLT 2.0 solution)

2005-11-29 08:40:25
could you give an example of a a recursive
function looping on substring-before()?

Note that neither this solution nor the 1.0 solution I posted earlier are 
functions. 2.0 does have the ability to support user-defined functions, 
which would be yet another way to solve this problem. It seems to me, 
though, that analyze-string is a perfect fit for this kind of problem.

Here's one of several ways to go at it in XSLT 2.0:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="d">
    <nos>
      <xsl:apply-templates/>
    </nos>
  </xsl:template>

  <xsl:template match="data">
    <xsl:analyze-string select="." regex=",">
      <xsl:matching-substring/>
      <xsl:non-matching-substring>
        <no><xsl:value-of select="."/></no>
      </xsl:non-matching-substring>
    </xsl:analyze-string>
  </xsl:template>

</xsl:stylesheet>

Tested with Saxon 8.6.

Given the same XML file as my 1.0 answer, it produces the same output.

Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)

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



<Prev in Thread] Current Thread [Next in Thread>