Subject: [xsl] two predicates and position|
From: Geoff Howard <geoff@xxxxxxxxxxxxxxx>
Date: Fri, 19 Dec 2003 12:43:09 -0500
I am trying to construct an xpath expression which will select the second matching node of a nodelist.
I have: //org[@department='Foo']
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"] selects the fifth para child of the context node that has a type attribute with value warning
para[@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.