xml – XSLT:如何从某个目录获取文件名?
XSLT中是否有一个功能可以占用一个目录路径并返回其中的所有文件?
我有一个xml文件现在读这样 <filelist> <file>fileA.xml</file> <file>fileB.xml</file> </filelist> 现在,有一个名为dir的目录,具有fileX.xml,fileY.xml文件和一堆其他的xml文件.我想将这些文件添加到原始的xml文件,以便我可以得到: <filelist> <file>fileA.xml</file> <file>fileB.xml</file> <file>fileX.xml</file> <file>fileY.xml</file> .... <!-- other files --> </filelist> 有没有XSLT的方式来做到这一点?一个可以在一个目录根中的东西,并且能够遍历其中的所有文件?然后我可以打电话给: <xsl:element name = file > <xsl:copy> <!--whatever file name--> <xsl:copy> </xsl:element>0 [编辑-溶液] 所有的答案都非常有帮助.我最终找到了一个外部解决方案(使用萨克森).我认为这可能有助于其他人将我的解决方案发布在这里,虽然它对我自己的情况非常具体. 我使用Ant构建一个java web应用程序,需要在部署之前翻译一些xml文件.因此,我正在使用xslt任务通过在类路径中添加“saxon9.jar”来完成这项工作.而在我的xsl文件中,我只是做了这样的事情: <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>
XSLT没有任何内置的任务. XSLT是一种转换语言 – 对于动态输出,您通常需要一个包含所有内容(只是以不同的形式)的转换源 – 您无法从任何内容创建XML.
解决问题的三种方法是: >以编程语言构建XML,完全不用XSLT.这是获得所需结果的最简单方法. 归结为: >您需要外部编程语言的帮助 Ergo:不要使用XSL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |