[xsl] two predicates and position

Subject: [xsl] two predicates and position
From: Geoff Howard <geoff@xxxxxxxxxxxxxxx>
Date: Fri, 19 Dec 2003 12:41:20 -0500
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.


Zvon's reference seems to think the same thing I do about the interpretation of the second predicate:
http://www.zvon.org/xxl/XSLTreference/W3C/xpath.html#NT-PredicateExpr
<quote>
para[@type="warning"] selects all para children of the context node that have a type attribute with value warning


para[@type="warning"][5] selects the fifth para child of the context node that has a type attribute with value warning

para[5][@type="warning"] selects the fifth para child of the context node if that child has a type attribute with value warning
</quote>


Am I wrong about the second predicate, and/or is there another way to write this expression to get what I want? Could this be a bug with my xml libraries (the ones bundled in jdk 1.4.2_02)? (I'm not doing this in xsl but from within a java class acting as a sort of poor-man's xml database).

Please forgive me if this is an FAQ - I did my best digging around the archives but couldn't turn anything up.

Geoff


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



Current Thread