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