[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Selecting attribute from previous parent node


Subject: Re: [xsl] Selecting attribute from previous parent node
From: Andrea Berman <andrea.berman@xxxxxxxxx>
Date: Mon, 30 Jan 2006 10:23:38 -0500

Never mind, I figured it out.  Here's the solution:

<xsl:value-of select="../../flower/@type" />

Or, if you're already in the flower node, just ../../@type.

On 1/30/06, Andrea Berman <andrea.berman@xxxxxxxxx> wrote:
> 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