xsl-list
[Top] [All Lists]

RE: find previous node at the same level

2003-04-30 00:25:18
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(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Mark Ivs
Sent: 30 April 2003 01:00
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
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



<Prev in Thread] Current Thread [Next in Thread>