Subject: Re: two predicates and position
From: Geoff Howard <geoff@xxxxxxxxxxxxxxx>
Date: Fri, 19 Dec 2003 13:45:25 -0500
|
Michael Kay wrote:
I am trying to construct an xpath expression which will select the
second matching node of a nodelist.
I have:
//org[@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[@department='Foo'/self::node()[position() = 2] which
will always
be empty.
No, it is actually behaving as
/descendant-or-self::node/(child::org[@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)[@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
|