Ecco una soluzione XSLT 1.0 che utilizza il modello str-split-to-words
di FXSL.
Si noti che questo modello consente di dividere su più delimitatori (passato come stringa parametro a parte), quindi, anche 1,4 7;9
sarà diviso senza problemi con questa soluzione.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ext="http://exslt.org/common"
>
<xsl:import href="strSplit-to-Words.xsl"/>
<xsl:output indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:call-template name="str-split-to-words">
<xsl:with-param name="pStr" select="/"/>
<xsl:with-param name="pDelimiters"
select="', ;	 '"/>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>
Quando questa trasformazione viene applicata sul seguente documento XML:
<x>1,4,7,9</x>
The Wanted, risultato corretto è prodotto:
<word>1</word>
<word>4</word>
<word>7</word>
<word>9</word>
fonte
2010-05-17 16:36:03
buona domanda (+1). Vedi la mia risposta per una soluzione che non prevede la ricorsione esplicita. –