Re: [xsl] two predicates and position

Subject: Re: [xsl] 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



Current Thread