Subject: Re: [xsl] Recursion (I think) From: David Carlisle <davidc@xxxxxxxxx> Date: Mon, 26 Sep 2005 12:50:00 +0100 |
> Ok, thanks. Does that mean it finds the nearest id attribute for any > node? Can I specify that it's the id attribute from the nearest > "ObjectType" node? All axes in Xpath work the same way. On the child axis child::* selects all element children and child::ObjectType selects ObjectType children, so on the ancestor axis it would be ancestor-or-self::ObjectType rather than ancestor-or-self::* If you only want to consider ObjectType. > ancestor-or-self::*[ObjectType][1]/@id that would select the id of the nerest ancestor that had an ObjectType child. Just as in the child axis ObjectType/@id selects the id of ObjectType, but *[ObjectType]/@id selects the id of an element with an ObjectType child. > What purpose does the [1] serve? as always [1] means [position()=1] and selects the first matching item rather than all of them. If you are at c <a id="a"> <b id="b"> <c/> then ancestor::*/@id seelcts all the id attributes of all ancestors, so both id="a" and id="b" here. ancestor::*[@id] selects all ancestor elements that have an id attribute so ,a> and <b> here. ancestor::*[@id][1] just seletcs the first of those (counting backwards) s <b> here. ancestor::*[@id][1]/@id selects the id attribute of the nearest eleemnt that has an id attribute, so id="b" here. You could also write this as (ancestor::*/@id)[last()] but I find the first form more readable. David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Recursion (I think), Nicholas Orr | Thread | Re: [xsl] Recursion (I think), Ragulf Pickaxe |
RE: [xsl] Recursion (I think), Michael Kay | Date | Re: [xsl] Recursion (I think), Ragulf Pickaxe |
Month |