Subject: RE: [xsl] 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: [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 > __________________________________ 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] how to always call a temp, Michael Kay | Thread | [xsl] copy-of problem in child node, jayanti |
[xsl] specifying html doctypes usin, S. Alexander Jacobso | Date | Re: [xsl] specifying html doctypes , Wendell Piez |
Month |