Oops. forgot to open the individual documents.
<xsl:for-each select="document('filelist.xml')/filename">
<xsl:variable name="thisDocument" select="document(.)"/>
<xsl:result-document href="someoutputname">
<xsl:apply-templates select="$thisDocument"/>
</xsl:result-document>
</xsl:for-each>
(Not tested, by the way, so might take some tinkering to get going.)
That assumes that filelist.xml looks like
<files>
<filename>somefile.xml</filename>
<filename>etc.xml</filename>
</files>
As Mike Kay pointed out while I was writing this correction, the XSL way
is not likely to be the most efficient way. Still, it's a problem you can
solve with XSL if you want to do so.
Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)
JBryant(_at_)s-s-t(_dot_)com
06/28/2005 03:07 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc
Subject
Re: [xsl] Multiple file XSL conversion
Hi, Andrew,
If you just want to apply the stylesheet to each file in turn, it's a more
or less (depending on your operating system) simple scripting problem. If
you want to stick purely to XML and XSL, you can create a list of the
files in an XML file, open it with the document function from your
stylesheet, and then open each file with the document function, process
the document, and write out the transformed content. In the latter case,
you'll need XSLT2.0 (for the xsl:result-document instruction) or an
extension that lets you write files in XSLT 1.0.
The general pattern looks like:
<xsl:for-each select="document('filelist.xml')/filename">
<xsl:result-document href="someoutputname">
<xsl:apply-templates/>
</xsl:result-document>
</xsl:for-each>
You can get fancier by writing an extension function to read the contents
of a directory. Then your controlling XML file can be a list of
directories rather than a list of files. I recently did this because I
couldn't know in advance which files to read from which directories.
Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)
Andrew Borsz <andrew(_at_)vitalsource(_dot_)com>
06/28/2005 02:53 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc
Subject
[xsl] Multiple file XSL conversion
Hello,
I'm trying to figure out a good way to convert multiple XML files at
the same time. Does anyone know the best way to take hundreds XML
documents and transform them all with the same XSL stylesheet in one or
two steps?
Any advice would be appreciated.
Thanks,
Andrew Borsz
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--