This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Ancestors


Thanks Jeni, David, et all:

    That did the trick.

Carmelo
----- Original Message -----
From: "Jeni Tennison" <jeni@jenitennison.com>
To: "Carmelo Montanez" <carmelo@nist.gov>
Cc: <xsl-list@lists.mulberrytech.com>
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]