Incrementando y verificando la variable de contador en XSLT

Tengo poca dificultad para asignar una variable de contador e incrementarla y luego verificar un determinado valor en XSLT. Aquí está mi código:

 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"             <!-- Test if Counter   
<!----> <!---->

Pero no parece incrementar mi contador y no salir cuando el contador llega a 3. ¿Alguna ayuda sobre esto?

Las ‘variables’ en XSL son en realidad constantes: no puede cambiar su valor. Esta:

  

solo generará el valor de $counter+1

Para hacer bucles, debe usar la recursión, por ejemplo:

      

aunque es mejor tratar de evitar los bucles, en la mayoría de los casos se puede escribir el XSL para evitarlo, pero no entiendo lo suficiente de lo que intenta lograr para darle la solución completa.

Yo tengo el mismo problema. Necesito incrementar el valor en bucle. Entonces, la forma más sencilla era incluir a Saxon y usar ese valor.

si usas Saxon 6.5.5

  

si usas Saxon 9.4.0.4

  

Y después de eso puedes simplemente usar la variable saxon:

       

En caso de que alguien quiera hacer esto mientras usa .net ( XslCompiledTransform ) puede usar

   < ![CDATA[ private mCounter As Integer Public Function AddToCounter() As Boolean mCounter += 1 Return True End Function Public Function GetCounter() As Integer Return mCounter End Function ]]>  

Luego agregue una llamada a “customCode: AddToCounter ()”, y luego podría escribir un mensaje como este rows remaining.

No podemos actualizar xsl:variable ya que son como constantes. Pero podemos actualizar dp:local-variables , por lo que aquí se inicializa el contador dp:local-variable antes de iniciar for-loop. Cada vez que se ejecuta el ciclo, el contador se actualizará por 1. Pruebe esto:

 < ?xml version="1.0" encoding="utf-8"?>               

Si desea saber dónde se encuentra en un bucle for-each, puede usar la función incorporada de posición ().

           

En mi caso, necesitaba un total de cajas en el envío, esto ayudó