Subject: RE: [xsl] how to always call a template at the end of xsl:template From: "Michael Kay" <mhk@xxxxxxxxx> Date: Tue, 21 Oct 2003 20:58:34 +0100 |
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: [xsl] 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: how to always call a temp, Dimitre Novatchev | Thread | RE: [xsl] how to always call a temp, Xiaocun Xu |
[xsl] Re: (none), J.Pietschmann | Date | Re: [xsl] XSLT Process for Linux --, J.Pietschmann |
Month |