Is there a function in XSLT that can takes in a directory path and gives back all the files in it??
I have a xml file now reads like this
<filelist>
<file>fileA.xml</file>
<file>fileB.xml</file>
</filelist>
Now, there's directory called dir
, has files fileX.xml
, fileY.xml
and a bunch of other xml files in it. I want to add these files on to the orginal xml file, so that I can get:
<filelist>
<file>fileA.xml</file>
<file>fileB.xml</file>
<file>fileX.xml</file>
<file>fileY.xml</file>
.... <!-- other files -->
</filelist>
Is there an XSLT way to do this?? something that takes in a dir root, and is able to iterator through all of the files in it?? And then I could just call something like:
<xsl:element name = file >
<xsl:copy> <!--whatever file name--> <xsl:copy>
</xsl:element>0
[Edit-solution]
all of the answers were very helpful. I ended up finding an external solution (using saxon). I thought it may be helpful for other people to post my solution here, although it is very specific to my own situation.
I use Ant to build a java web app and need to translate some xml files before deployment. Hence, I was using the xslt
task to do the job by adding the "saxon9.jar" in the classpath. And in my xsl file, I just did something like this:
<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>
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…