xsl-list
[Top] [All Lists]

Re: two predicates and position

2003-12-19 11:45:25
Michael Kay wrote:

I am trying to construct an xpath expression which will select the second matching node of a nodelist.

I have:
//org[(_at_)department='Foo'][2]

I expected that to select all //org nodes where @department = 'Foo' and then give me the second within that set.

however this is behaving as
//org[(_at_)department='Foo'/self::node()[position() = 2] which will always be empty.


No, it is actually behaving as

/descendant-or-self::node/(child::org[(_at_)department='Foo'][2])

that is, it will select every org that is the second child of its parent
that has @department foo.

You probably want (//org)[(_at_)department='Foo'][2]

That's exactly it. Maybe if I'd bought my own copy of your book instead of leaching off my co-worker I'd know that...

Grateful,
Geoff


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>