Aquí hay una solución XSLT 1.0 que utiliza la plantilla str-split-to-words
de FXSL.
Tenga en cuenta que esta plantilla permite dividir en múltiples delimitadores ( pasados como parámetro una cadena separada), por lo que incluso 1,4 7;9
se dividirá sin ningún problema utilizando esta solución.
<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>
Cuando se aplica esta transformación en el siguiente documento XML:
<x>1,4,7,9</x>
el resultado deseado, se produce correcta:
<word>1</word>
<word>4</word>
<word>7</word>
<word>9</word>
buena pregunta (1). Vea mi respuesta para una solución que no involucre recursión explícita. –