función dividida en xslt 1.0

cómo dividir un valor de nodo en XSLT 1.0?

1,2 

Necesito realizar algunas operaciones en el ciclo for con cada valor de la salida de split.

¿Como hacer esto?

I. Solución XSLT 1.0 :

Esta es una forma de hacerlo en XSLT 1.0 utilizando solo la función de extensión xxx:node-set() :

                         

cuando esta transformación se aplica al siguiente documento XML :

 1,2,3,4,5 

El resultado correcto deseado (cada elemento multiplicado por 10) se produce :

 10 20 30 40 50 

II. Solución XSLT 2.0 :

           

La explicación de Dimitre Novatchev es impresionante, pero también podemos hacerlo de una manera mucho más simple sin usar la función node-set() eche un vistazo:

 < ?xml version="1.0" encoding="UTF-8"?>    ,                             

Si puede usar exslt, hay una función tokenize() que lo hará muy bien.

 node-set str:tokenize(string, string?) 

Ver http://www.exslt.org/str/functions/tokenize/

En 1.0 necesitas escribir una plantilla recursiva, excepto que no, porque ya está escrita. Descargue la plantilla str: tokenize de http://www.exslt.org .

Este código dividirá una cadena delimitada en XSLT 1.0 (Funcionará para 2.0, pero no usará el conjunto de nodos). También opcionalmente suprimirá los elementos vacíos en la cadena u opcionalmente en mayúscula los elementos.