【发布时间】:2015-06-23 06:36:05
【问题描述】:
我有一些 XSL 文件递归地处理目录中的所有文件,基本上它读取一个名为集合的变量:
<xsl:variable name="collection">
<xsl:copy-of select="collection(iri-to-uri('./?select=*.xml;recurse=yes'))/*"/>
</xsl:variable>
然后,我们有类似的东西:
<xsl:for-each-group select="$collection/configuration/services/service" group-by="serviceKey" >
这在一段时间内很好,但现在我想传入构成变量集合的文件列表。我正在使用 java,所以我可以有效地传递一个逗号分隔的文件路径或 URI 列表,但我不确定如何在 XSL 文件中处理它,以便它像递归 iri-to-uri 函数一样填充集合变量正在工作。
【问题讨论】:
-
请注意,您可以简单地使用
<xsl:variable name="collection" select="collection(...)"/>而不是<xsl:variable name="collection"><xsl:copy-of select="collection(...)"/></xsl:variable>,这应该更有效,因为它会在您的代码创建已解析文档的副本时加载和解析文档一次。