RE: [xsl] Selecting attribute from previous parent node

Subject: RE: [xsl] Selecting attribute from previous parent node
From: "bokluk" <bokluk@xxxxxxx>
Date: Mon, 30 Jan 2006 16:45:27 +0100
../@atributename ?

-----Original Message-----
From: Andrea Berman [mailto:andrea.berman@xxxxxxxxx] 
Sent: Monday, January 30, 2006 3:18 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Selecting attribute from previous parent node

I really did try.  I'm trying to establish a parent-child
relationship.  I tried using ancestor in one instance, and it got the
top node for the whole tree instead of the previous node for each
instance.

On 1/28/06, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > That's great for non-dynamic code, but this code is dynamic.  So how
> > would you reference it as not being equal to the current node?
>
> ancestor::flower[not(@type = current()/@type)]
>
> (this is turning into one of those threads where every time you get an
> answer, you change the question. Perhaps you need to think more carefully
> about how to articulate your requirements.)
>
> Michael Kay
> http://www.saxonica.com/
>
>
> >
> > I'm basically looking to obtain the previous type for each flower node
> > you're at.  Think of it like a parent-child relationship.  If the
> > parent of tulip is rose, I want to be able to obtain the value of
> > rose.
> >
> > On 1/27/06, Thang X. Le <tle@xxxxxxxxxxx> wrote:
> > > If your current node is: row//basket/flower[@type='tulip']
> > >
> > > Then the previous non-tulip flower node is:
> > > ancestor::flower[@type!='tulip']
> > >
> > > And you can get (print) the previous flower type like this:
> > > <xsl:apply-templates select="ancestor::flower[@type!='tulip']"/>
> > >
> > > <xsl:template match="flower">
> > >        <xsl:value-of select="@type"/>
> > > </xsl:template>
> > >
> > > Or maybe I don't quite understand the requirements...
> > >
> > > On 27 Jan 2006 at 17:28, Andrea Berman wrote:
> > >
> > > > It's Friday!  Please, have pity upon me and save my sanity!
> > > >
> > > > Say I have the following style of XML:
> > > >
> > > > <row>
> > > >    <basket>
> > > >      <flower type="rose">
> > > >        <basket>
> > > >          <flower type="tulip">
> > > >            <basket>
> > > >               ...
> > > >            </basket>
> > > >          </flower>
> > > >        </basket>
> > > >      </flower>
> > > >    </basket>
> > > > </row>
> > > >
> > > > If I'm at node "flower" with type of "tulip", how do I
> > reference the
> > > > previous flower's type?
> > > >
> > > >
> > > > Thanks!

Current Thread