Subject: RE: replacing an output block
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 27 Jun 2005 12:28:32 +0100
|
You're thinking procedurally. There's no "earlier" or "later" in XSLT -
order of execution is undefined.
Sounds as if you need a two phase stylesheet. Phase 1 computes a result tree
and puts this in a variable. Phase 2 considers whether a better result is
possible: if so, it applies a transformation to the first result (replacing
the relevant subtree with a better version and copying everything else
across unchanged); if not, it simply returns the result of the first phase.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Rahil [mailto:qamar_rahil@xxxxxxxxxxx]
> Sent: 27 June 2005 11:23
> To: XSL List
> Subject: replacing an output block
>
> Hi
>
> I want to replace a block of an HTML TABLE output in case
> better results
> are obtained later. So I have the result in 'first.html' of some
> processing in 'first.xsl'.
>
> first.html -- output
>
> <HTML><BODY>
> <TABLE>
> <TR>
> <TD>Want to replace this block with new output</TD>
> <TD>Some other results from first.xsl</TD>
> </TR>
> </TABLE>
> </BODY></HTML>
>
> The block shown above has been copied as such in second.xsl using
> <xsl:copy> and <xsl:copy-of>.
>
> However as a result of processin some other block a better match is
> obtained for the TR/TD[1] above and I would like to replace this new
> finding with the old one. Given that I can easily locate the position
> where this TR/TD[1] occurs, how do I overwrite the earlier output ?
>
> Would appreciate any help or suggestions.
>
> Thanks
> Rahil
|