Subject: RE: how to always call a template at the end of xsl:template
From: Xiaocun Xu <xiaocunxu@xxxxxxxxx>
Date: Tue, 21 Oct 2003 13:57:39 -0700 (PDT)
|
Ah, that is neat, thanks for the pointer.
--- Michael Kay <mhk@xxxxxxxxx> wrote:
> In XSLT 2.0 you can do
>
> <xsl:template match="*" mode="#all" priority="10">
> <xsl:next-match/>
> <xsl:call-template name="logRowId"/>
> </xsl:template>
>
> Michael Kay
>
> > -----Original Message-----
> > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On
> Behalf Of Xiaocun Xu
> > Sent: 21 October 2003 18:19
> > To: xsl-list
> > Subject: how to always call a template at
> the end of
> > xsl:template
> >
> >
> > Hi,
> >
> > I need to log row ID for error reporting and
> this
> > has to be done at end of all rows regardless of
> > template mode. The obvious way is to add
> > <xsl:call-template name="logRowId"/> at end of
> each of
> > the <xsl:template match="row"> regardless of mode,
> the
> > problem is maintainence as I need to pepper this
> call
> > to all row templates (there are a number of row
> > templates with different modes) and I need to
> continue
> > remember add this call at end of each new row
> template
> > mode in the future. Is there a clean way to
> always
> > call template logRowId at end of <xsl:template
> > match="row"> regardless of mode? Sample source
> XML
> > and XSLT below.
> >
> > thanks,
> > Xiaocun
> >
> > Source XML:
> > <row row="7">
> > <cell column="1">host</cell>
> > <cell column="3">fsc1_BA1</cell>
> > <cell column="4">unacknowledged</cell>
> > <cell column="5">rfx</cell>
> > <cell column="7">lead</cell>
> > </row>
> > <row row="9">
> > <cell column="1">respondent</cell>
> > <cell column="2">s1</cell>
> > <cell column="3">s1_AM1</cell>
> > <cell column="4">unacknowledged</cell>
> > <cell column="5">rfx</cell>
> > </row>
> >
> >
> > XSLT:
> > <xsl:apply-templates select="//row[@row < 8]"
> > mode="host"/>
> > <xsl:apply-templates select="//row[@row > 8]"
> mode="respondent"/>
> >
> > <xsl:template match="row" mode="host">
> > <!-- skip unnecessary details -->
> > <xsl:call-template name="logRowId"/>
> > </xsl:template>
> > <xsl:template match="row" mode="respondent">
> > <!-- skip unnecessary details -->
> > <xsl:call-template name="logRowId"/>
> > </xsl:template>
> >
> > <!-- log row ID for error reporting -->
> > <xsl:template name="logRowId">
> > <xsl:element name="Logs">
> > <xsl:attribute name="rowID"><xsl:value-of
> > select="@row"/></xsl:attribute>
> > </xsl:element>
> > </xsl:template>
> >
> > __________________________________
> > Do you Yahoo!?
> > The New Yahoo! Shopping - with improved product
> search
> http://shopping.yahoo.com
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|