xsl-list
[Top] [All Lists]

Re: Selecting attribute from previous parent node

2006-01-27 20:58:00
ancestor::flower[(_at_)type!='tulip']

The trouble with that is that it selects every flower node whose type
attribute does not contain 'tulip on the entire axis. If there's more than
one non-tulip flower node up the ancestor axis, this expression will get all
of them, which will either generate errors or lead to unexpected results. It
needs the position predicate ([1]) to get the first ancestor node (which is
the most immediate node on the axis).

So, it needs to be

ancestor::flower[1]/@type

Jay Bryant
Bryant Communication Services

----- Original Message ----- 
From: "Thang X. Le" <tle(_at_)neptium(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Friday, January 27, 2006 5:57 PM
Subject: Re: [xsl] Selecting attribute from previous parent node


If your current node is: row//basket/flower[(_at_)type='tulip']

Then the previous non-tulip flower node is:
ancestor::flower[(_at_)type!='tulip']

And you can get (print) the previous flower type like this:
<xsl:apply-templates select="ancestor::flower[(_at_)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!

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or
e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> --~--






--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--