Incremento e controllo della variabile contatore in XSLT

Ho poche difficoltà nell’assegnare una variabile contatore e nell’incrementarla e quindi verificare un certo valore in XSLT. Ecco il mio codice:

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

Ma non sembra aumentare il mio contatore e non uscire quando il contatore colpisce 3. Qualsiasi aiuto su questo?

Le “variabili” in XSL sono in realtà delle costanti: non è ansible modificarne il valore. Questo:

  

mostrerà solo il valore di $counter+1

Per fare i loop devi ricorrere alla ricorsione, ad esempio:

      

anche se è meglio cercare di evitare i loop, nella maggior parte dei casi è ansible scrivere l’XSL per evitarlo, ma non capisco abbastanza di quello che stai cercando di ottenere per darti la soluzione completa.

Ho lo stesso problema. Ho bisogno di incrementare il valore in loop. Quindi il modo più semplice era includere Saxon e usare quel valore.

se usi Saxon 6.5.5

  

se usi Saxon 9.4.0.4

  

E dopo quello puoi semplicemente usare la variabile saxon:

       

Nel caso in cui qualcuno voglia fare ciò mentre si utilizza .net ( XslCompiledTransform ) è ansible utilizzare

     

Quindi aggiungi una chiamata a “customCode: AddToCounter ()”, e quindi potresti scrivere un messaggio come questo rows remaining.

Non possiamo aggiornare xsl:variable poiché sono proprio come le costanti. Ma possiamo aggiornare dp:local-variables , quindi qui dp:local-variable contatore delle dp:local-variable viene inizializzato prima di avviare for-loop. Ogni ciclo temporale viene eseguito contatore si aggiornerà da 1. Prova questo:

                

Se vuoi sapere dove ti trovi in ​​un ciclo for-each, puoi usare la funzione built-in position ().

           

Nel mio caso avevo bisogno di un totale di scatole nella spedizione, questo mi ha aiutato