RE: [xsl] Selecting attribute from previous parent node

Subject: RE: [xsl] Selecting attribute from previous parent node
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 28 Jan 2006 17:37:13 -0000
> 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