Subject: Re: document() revisited From: Steve Tinney <stinney@xxxxxxxxxxxxx> Date: Wed, 16 Feb 2000 08:29:52 -0500 |
> <mother> > <file>files\overview.html</file> > <file>files\book1\page1.html</file> > <file>files\book1\chap1\page2.html</file> > <file>files\book2\page1.html</file> > <file>files\book2\chap1\page2.html</file> > </mother> > > How can I use XSL to enter each listed file, > manipulate it and copy the result onto itself, > thus retaining the file names and directory structure? You would need to use document(), as you already realize, in conjunction with a processor that has at least an output extension, and possibly a nodeset extension also (depending on what you want to do). You would need to be sure that after a document() call, the processor closed the file (i.e., do some testing with unimportant data first or, better, read the source for your processor). So, the structure would be something like this: <xsl:template match="file"> <xsl:variable name="pathname" select="."/> <xsl:variable name="contents" select="document($pathname)"/> <xsl:variable name="newcontents-rtf"> ... rewrite $contents here ... </xsl:variable> ... possibly do further transforms here ... <saxon:output file="$pathname" method="xml" encoding="utf-8"> <xsl:copy-of select="$newcontents-rtf"/> </saxon:output> </xsl:template> You probably need to ensure that you reference $contents before doing the file open for the new output because most(? some?) processors do lazy evaluation of the select expressions. Steve XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
document() revisited, Beckers, Marc | Thread | RE: document() revisited, Linda van den Brink |
RE: document() revisited, Didier PH Martin | Date | RE: document() revisited, Beckers, Marc |
Month |