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