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 |