XSLT: Como obter nomes de arquivos de um determinado diretóri
Existe uma função no XSLT que pode pegar um caminho de diretório e devolver todos os arquivos nele
Tenho um arquivo xml agora lido como este
<filelist>
<file>fileA.xml</file>
<file>fileB.xml</file>
</filelist>
Agora, existe um diretório chamadodir
, tem arquivosfileX.xml
, fileY.xml
e vários outros arquivos xml nele. Quero adicionar esses arquivos ao arquivo xml original, para que eu possa obter:
<filelist>
<file>fileA.xml</file>
<file>fileB.xml</file>
<file>fileX.xml</file>
<file>fileY.xml</file>
.... <!-- other files -->
</filelist>
Existe uma maneira XSLT de fazer isso? algo que leva em uma raiz dir e é capaz de iterar através de todos os arquivos nele? E então eu poderia chamar algo como:
<xsl:element name = file >
<xsl:copy> <!--whatever file name--> <xsl:copy>
</xsl:element>0
[Solução de edição]todas as respostas foram muito úteis. Acabei encontrando uma solução externa (usando saxão). Eu pensei que poderia ser útil para outras pessoas postarem minha solução aqui, embora seja muito específico para minha própria situaçã
Uso o Ant para criar um aplicativo da web java e preciso traduzir alguns arquivos xml antes da implantação. Portanto, eu estava usando oxslt
tarefa para executar o trabalho adicionando o "saxon9.jar" no caminho de classe. E no meu arquivo xsl, fiz algo parecido com isto:
<xsl:for-each select="collection('../dir/?select=*.xml')" >
<xsl:element name='file'>
<xsl:value-of select="tokenize(document-uri(.), '/')[last()]"/>
</xsl:element>
</xsl:for-each>