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

Subject: RE: [xsl] find previous node at the same level
From: Sundar Shanmugasundaram <SSHANMUGASUNDARAM@xxxxxxxxxxxxx>
Date: Wed, 30 Apr 2003 10:31:29 +0530
Use this template

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output method="html" indent="yes" /> 	

<xsl:template match="/o/home">
	<xsl:apply-templates select="item"/>
</xsl:template>

<xsl:template match="item">
		<xsl:if
test="name((preceding-sibling::*)[last()])='group'">.
			blah blah
		</xsl:if>
		<xsl:if test="name((preceding-sibling::*)[last()])='item'">.
			blah blah
		</xsl:if>
</xsl:template>
 
</xsl:stylesheet>

For the XML

<?xml version="1.0"?>
<o>
<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>
</o>

BFN,

sundar

-----Original Message-----
From: Mark Ivs [mailto:markivs2003@xxxxxxxxx]
Sent: Wednesday, April 30, 2003 5:30 AM
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