RE: [xsl] find previous node at the same level

Subject: RE: [xsl] find previous node at the same level
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 30 Apr 2003 08:25:18 +0100
Use the preceding-sibling axis.

For this kind of problem you often need to use generate-id() as well, to
compare node identities. For example you can define a key

<xsl:key name="g" select="item"
use="generate-id(preceding-sibling::group[1])"/>

which will enable you to find all the items in a group as:

<xsl:template match="group">
  <xsl:for-each select="key('g', generate-id())">
    ....

Michael Kay


> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Mark Ivs
> Sent: 30 April 2003 01:00
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] find previous node at the same level
> 
> 
> Hello,
> 
> Here's how my xml looks. 
> 
> <home>
> <group>group 1</group>
> <item>item one</item>
> <item>item two</item>
> <item>item three</item>
> <item>item four</item>
> <group>group 2</group>
> <item>item one</item>
> <item>item two</item>
> <item>item three</item>
> </home>
> 
> <xsl:apply-templates select="item">
> 	if previous node is group... then do blah
> 	
> 	else if previous node is item.... then do blah 
> </xsl:apply-templates>
> 
> So when I am in item template how do I find what the
> previous node is ? (In my example it will be the item
> one nodes)
> 
> Your help will be appreciated. Thanks.
> 
> Mark
> 
> __________________________________
> Do you Yahoo!?
> The New Yahoo! Search - Faster. Easier. Bingo. http://search.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