Subject: RE: xsl:result-document appending
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 19 Sep 2003 13:53:45 +0100
|
You can't do this; allowing it would break the non-sequential nature of
XSLT (unless you were happy to have the lines in your log file appear in
random order).
XSLT processing should generally be output-driven, not input-driven. If
you need to produce two different outputs that use the same input, then
access the input twice; if this looks as if it will be inefficient, then
save intermediate results in a variable.
Michael Kay
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Kloeck, Erwin
> Sent: 19 September 2003 09:13
> To: xsl-list@Lists. mulberrytech. com (E-Mail)
> Subject: xsl:result-document appending
>
>
> Hi,
>
> I want to write out something like a log file from within a
> for-each loop. I do some processing and at one point within
> the loop I want to write a line to a different file.
>
> Here is what I do:
>
> --------- log.xml ---------
> <?xml version="1.0" encoding="UTF-8"?>
> <top>
> <item value="hugo"/>
> <item value="otto"/>
> <item value="xaver"/>
> </top>
>
> --------- log.xsl ---------
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="2.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format">
>
> <xsl:output name="log-format" method="text"
> omit-xml-declaration="yes"/>
> <xsl:template match="/">
> <xsl:for-each select="top/item">
>
> <!-- some involved processing with variables that are
> used in the log entry -->
>
> <xsl:result-document href="log.txt" format="log-format" >
> <xsl:value-of select="concat(string(position()), ' =
> ', @value)"/>
> </xsl:result-document >
> </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
>
> --------- log.txt ---------
> 3 = xaver
>
>
> I would like log.txt to look like this:
> --------- log.txt ---------
> 1 = hugo
> 2 = otto
> 3 = xaver
>
> For this I would like to be able to append to the existing
> log.txt file. Is there a way to do this?
>
>
> The alternative I can think of is to run trough the for-each
> loop twice, once to do the processing and once to write the
> log file. I hope I have other options.
>
>
> Thanks
>
> Erwin
>
> ..............................
>
> Erwin Kloeck
> Produktentwicklung
>
> Oestreicher + Wagner
> Medientechnik GmbH
> Frankenthaler Strasse 20
> D-81539 Muenchen
>
> Fon +49 (0)89-68961 216
> Fax +49 (0)89-68961 271
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|