Re: [xsl] Ancestors

Subject: Re: [xsl] Ancestors
From: "Carmelo Montanez" <carmelo@xxxxxxxx>
Date: Thu, 8 Nov 2001 11:55:16 -0500
Thanks Jeni, David, et all:

    That did the trick.

Carmelo
----- Original Message -----
From: "Jeni Tennison" <jeni@xxxxxxxxxxxxxxxx>
To: "Carmelo Montanez" <carmelo@xxxxxxxx>
Cc: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Thursday, November 08, 2001 11:41 AM
Subject: Re: [xsl] Ancestors


> Hi Carmelo,
>
> > If I am the current context node and I wanted to know if any of my
> > ancestors had the string "region" in its name, how will go about
> > that. I tried a number of combination with no success.
> >
> >     I think is something along the lines:
> >
> >       <xsl:if test = "contains(name(ancestor::*),'region')"/>, but it
does
> > not seems to work.
>
> When you use the name() function on a node set, it tells you the name
> of the *first* node in that node set (in document order). So:
>
>   name(ancestor::*)
>
> will always give you the name of the document element in your XML
> document.
>
> Instead, you need to go through all the ancestor elements one by one
> and filter in those whose name contains the string 'region' using a
> predicate:
>
>   ancestor::*[contains(name(), 'region')]
>
> This will return a node set containing all the ancestors whose name
> contains the string 'region'. If there are nodes in that node set,
> then it evaluates as true, if not, it evaluates as false.
>
> I hope that helps,
>
> Jeni
>
> ---
> Jeni Tennison
> http://www.jenitennison.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


Current Thread