Necesito iterar sobre los caracteres en una cadena para construir una estructura XML.XSLT 1.0: Iterar caracteres sobre una cadena
Actualmente, estoy haciendo esto:
<xsl:template name="verticalize">
<xsl:param name="text">Some text</xsl:param>
<xsl:for-each select="tokenize(replace(replace($text,'(.)','$1\\n'),'\\n$',''),'\\n')">
<xsl:element name="para">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</xsl:template>
Esto produce algo así como:
<para>S</para>
<para>o</para>
<para>m</para>
<para>e</para>
<para> </para>
<para>t</para>
<para>e</para>
<para>x</para>
<para>t</para>
Esto funciona bien con XPath 2.0. Pero necesito aplicar el mismo tratamiento en un entorno XPath 1.0, donde el método replace()
no está disponible.
¿Conoces alguna forma de lograrlo?
excelente pregunta (1). Vea mi respuesta para una solución XSLT 2.0, que también es la más corta hasta ahora. :) –
Vea también mi solución XSLT 1.0. :) –
@Dimitre, si no fuera el más corto, no tendría sentido usar XSLT 2.0 ;-) – Lucero