java - 将 XSLT 2.0 函数 iri-to-uri 替换为来自通过 Java 传入的参数的 URI 列表

标签 java xml xslt saxon

我有一些 XSL 文件可以递归地处理目录中的所有文件,基本上它读取一个名为 collection 的变量:

<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 函数一样填充集合变量正在工作。

最佳答案

另一种解决方案是在您的 Java 应用程序中实现 CollectionURIResolver。您可以在运行转换之前将其指定给 Saxon。当您调用 collection() 函数时,Saxon 将调用您的 CollectionURIResolver,它可以传回文档或 URI 列表。

http://www.saxonica.com/documentation/index.html#!javadoc/net.sf.saxon.lib/CollectionURIResolver

关于java - 将 XSLT 2.0 函数 iri-to-uri 替换为来自通过 Java 传入的参数的 URI 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30995487/

相关文章:

java - AndroidManifest 中的工具替换

xml - 如何在odoo/openerp中显示由外键链接的对象的字段?

xml - 在 XSL :FO 中添加方形复选框

XSLT:删除除第一次出现的给定节点之外的所有节点

java - mysql导入表中数据报错异常

java - Struts1.2 Action 类没有被调用

xml - 在 xs :documentation for a xsd schema 中添加换行符

java - Eclipse 中缺少构建路径条目

java - Infinispan的configuration.xml在哪里找到

html - XSLT 允许不匹配的标签?