Subject: RE: two predicates and position
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 19 Dec 2003 18:22:21 -0000
|
> 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]
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|