|
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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Ancestors, Jeni Tennison | Thread | RE: [xsl] Ancestors, Michael Kay |
| Re: [xsl] reliability of MSXML, David Carlisle | Date | RE: [xsl] Ancestors, Ball, Mike |
| Month |