/ / XPath Count Transformed Lines - xslt, xpath

Contagem XPath Linhas Transformadas - xslt, xpath

Eu tenho uma necessidade de acrescentar registros de preenchimento a um arquivo que está sendo gerado com XSLT. A necessidade é arredondar o número total de linhas no arquivo até o número 10 mais próximo, de forma que exista o seguinte:

FileHeader
SectionHeader
Detail
Detail
Detail
SectionFooter
FileFooter

O número total de linhas seria 7 e eu precisaria adicionar 3 registros de preenchimento para fazer:

FileHeader
SectionHeader
Detail
Detail
Detail
SectionFooter
FileFooter
[Filler Record]
[Filler Record]
[Filler Record]

Devo apenas incrementar uma variável no xslttoda vez que eu escrevo uma linha e a uso para fazer a matemática no final, ou existe uma maneira do xslt / xpath saber quantas linhas ele está atualmente escrito, de modo que haja alguma chamada de função mais confiável que eu possa fazer isso vai me dar essa contagem?

Respostas:

2 para resposta № 1

Não existe uma maneira de incrementar uma variável no XSLT. O XSLT também não pode informar quantas linhas foram escritas até agora (porque o XSLT foi projetado para preferir a independência de ordem de execução).

Em vez disso, você pode

  1. Faça um cálculo separado (por ex. contagem) de quantos registros a folha de estilo deve produzir através de outros modelos baseados no documento de entrada. Este é o método mais fácil, se o número de registros de saída for igual ao número de registros de entrada, ou pelo menos um é facilmente previsto com base no outro. Ou,

  2. Capture o resultado da sua transformação inicial em uma variável (usando o nodeset extensão ou usando XSLT 2.0) e, em seguida, executar count() nele para determinar o número de registros nele. Então faça um xsl:copy-of para produzir o resultado capturado, seguido por qualquer preenchimento necessário.