RE: [xsl] passing twice in a node (with one xsl file)

Subject: RE: [xsl] passing twice in a node (with one xsl file)
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Wed, 10 Apr 2002 18:24:55 +0100
Using <xsl:apply-imports> works nicely, but you say you can only use one
stylesheet [module]. I wonder why you have that restriction?

An alternative is to use modes:

<xsl:template match="element1 | element2 | ...">
  process the attribute
  <xsl:apply-templates select="." mode="x"/>
</xsl:template>

<xsl:template match="element1" mode="x">
etc...

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Sébastien
> Tisserant
> Sent: 10 April 2002 13:42
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] passing twice in a node (with one xsl file)
>
>
> Hello,
>
> I have this simple XSL:
>
> <xsl:style-sheet>
>
> <xsl:template match='element1'>
> ....
>   <xsl:apply-templates/>
> ....
> </xsl:template>
>
> <xsl:template match='element2'>
> ....
>   <xsl:apply-templates/>
> ....
> </xsl:template>
>
> <xsl:template match='element3'>
> ....
>   <xsl:apply-templates/>
> ....
> </xsl:template>
>
> ....
>
> <xsl:template match='elementn'>
> ....
>   <xsl:apply-templates'/>
> ....
> </xsl:template>
>
> </xsl:style-sheet>
>
> and i have to test an identical attribute on each of this element.
> in order not to repeat this test inside each template,
> i would like to find a way to pass twice each element or node
>
> first pass: test the attribute and output specific HTML tag
> around this element
> second pass: apply to the element its template in the XSL
> above outputting other HTML tags around it
>
> i could use <xsl:import> but i need to have only one xsl file
>
> thanks for helping.
>
> Sébastien
>
>
>
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread