Subject: Re: [xsl] XSL/XPath expression From: Oliver Becker <obecker@xxxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 16 May 2001 14:07:08 +0200 (MET DST) |
Hi Magnus > To match only the 1st Element element with Type="2" when in the ElementList > context node I could write: > > <xsl:if test="Element[@Type='2'][position()=1]"> > do something > </xsl:if> > > This seems to be working. What I really want to do, however, is to have this > test inside the Element context node, but I have no clue how to express > this: > > <xsl:template match="ElementList"> > <xsl:apply-templates select="Element"/> > </xsl:template> > <xsl:template match="Element"> > <xsl:if test="???[@Type='2'][position()=1]"> > do something > </xsl:if> > </xsl:template> The simples solution is probably to put the predicate into the select expression of xsl:apply-templates: <xsl:template match="ElementList"> <xsl:apply-templates select="Element[@Type=2][1]" /> </xsl:template> or into the pattern <xsl:template match="Element[@Type=2][1]"> If you can't or want do that, check the preceding siblings: <xsl:template match="Element"> <xsl:if test="@Type=2 and not(preceding-sibling::Element[@Type=2])"> ... Lots of possibilities. Cheers, Oliver /-------------------------------------------------------------------\ | ob|do Dipl.Inf. Oliver Becker | | --+-- E-Mail: obecker@xxxxxxxxxxxxxxxxxxxxxxx | | op|qo WWW: http://www.informatik.hu-berlin.de/~obecker | \-------------------------------------------------------------------/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSL/XPath expression, David Carlisle | Thread | RE: [xsl] XSL/XPath expression, Eriksson Magnus |
[xsl] XSL/XPath expression, Eriksson Magnus | Date | Re: [xsl] XSL/XPath expression, David Carlisle |
Month |