xsl-list
[Top] [All Lists]

RE: find previous node at the same level

2003-04-29 22:01:29
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(_at_)yahoo(_dot_)com]
Sent: Wednesday, April 30, 2003 5:30 AM
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>