Subject: RE: [xsl] the nearest ancestor with the attribute From: "Michael Kay" <mhkay@xxxxxxxxxxxx> Date: Wed, 17 Jan 2001 09:19:36 -0000 |
> You're absolutely right that the ancestor axis is a reverse axis. If > you were using: > > ancestor::*[1]/@attr > > you'd be fine (aside from the fact that you'd be stuffed if the node's > parent didn't have a 'attr' attribute). However, the last axis used in > the XPath is the 'attribute' axis, which takes you back to document > order again. To get the last one, use: > > ancestor::*/@attr[last()] > > At least I *think* that's right ;) No, I don't think it is. This expression will return a set consisting of the last @attr attribute of each ancestor element. An element can only have one @attr attribute so saying you want its last one is pointless. An axis returns a list of nodes, which is always in either forwards or reverse document order. This affects the meaning of position() and last() when applied to a predicate used in a Step based on that axis. The final result of a path expression, however, is always a set of nodes, with no intrinsic order. Many operations on a node-set access the nodes in document order. This includes a filter expression, so: (ancestor::*/@attr)[last()] will select the last in document order (i.e. the innermost available attribute). Mike Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] the nearest ancestor with, Jeni Tennison | Thread | Re: [xsl] the nearest ancestor with, Jeni Tennison |
RE: [xsl] variable comparison, Michael Kay | Date | Re: [xsl] Beware the count method w, Jeni Tennison |
Month |