使用xslt 2.0生成包含目录中文件列表的文档

时间:2015-02-25 16:17:26

标签: xml xslt saxon

我有一堆带有派对xml文件和部分二进制图像文件的文件夹。

我正在使用以下内容生成这些文件的列表:

    <xsl:variable name="string" select="iri-to-uri(concat(@name, '/?select=*.(xml|gxf)'))"/>
    <xsl:variable name="input" select="collection($string)"/>
    <xsl:for-each select="$input">
    <file>
    <xsl:value-of select="tokenize(document-uri(.), '/')[last()]"/>
    </file>
    </xsl:for-each>

效果很好,当然除了二进制文件。我怎么能得到这些文件的uri?使用saxon9he可以使用纯xslt 2.0吗?

1 个答案:

答案 0 :(得分:1)

可以使用uri-collection()函数完成,但那是XPath 3.0。因此,您可以使用XQuery使用Saxon-HE 9.6,但不使用XSLT。

let $string := iri-to-uri(concat(@name, '/?select=*.(xml|gxf)'))
let $input := uri-collection($string)
for $i in $input
return
    <file>
      {tokenize($i, '/')[last()]}
    </file>

(当他们成为W3C推荐版时,我们将XQuery 3.0和XPath 3.0支持转移到HE产品中.XSLT 3.0尚未达到该状态。)