[xsl] two predicates and position

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'][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