Re: [xsl] collecting a fileset with XSLT 2.0

Subject: Re: [xsl] collecting a fileset with XSLT 2.0
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 05 Feb 2012 15:56:26 -0500
At 2012-02-05 12:51 -0800, Mark Giffin wrote:
Is there a way to collect a set of files off the file system in XSLT 2.0, in the same way that Ant lets you define a set of files with <fileset> like this:

<fileset dir="${src.dir}" id="all.docs">
<include name="**/*.xml"/>
<exclude name="**/gui/*.*"/>
<exclude name="tools/**/*.*"/>
<exclude name="content/extra/**/*.*"/>
</fileset>

Maybe an extension function or something? I've been using a manually-maintained list of files like this, but it's a a pain:

<docroot>
<root href="../../../doc_source/system100.xml" />
<root href="../../../doc_source/content/access/accesscore.xml" />
<root href="../../../doc_source/content/access/accesstest.xml" />
<root href="../../../doc_source/content/access/accesstest_commands.xml" />
  etc.
</docroot>

The concept in XSLT2 is the function collection(uri) which returns a set of root nodes of all the XML files addressed by the URI.


There is no standard for the URI string, so you have to read your vendor's documentation regarding how to compose the URI for what you want. For example, for Saxon, you would address all the XML files in the current and descendent subdirectories with something along the lines of:

collection("./?select="*.xml;recurse=yes;on-error=ignore")

I hope this helps.

. . . . . . . . . . . Ken


-- Contact us for world-wide XML consulting and instructor-led training Free 5-hour video lecture: XSLT/XPath 1.0 & 2.0 http://ude.my/uoui9h Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread