我有一堆带有派对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吗?
答案 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尚未达到该状态。)