xsl-list
[Top] [All Lists]

two predicates and position

2003-12-19 10:41:20
I am trying to construct an xpath expression which will select the second matching node of a nodelist.

I have:
//org[(_at_)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[(_at_)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[(_at_)type="warning"] selects all para children of the context node that have a type attribute with value warning

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

para[5][(_at_)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



<Prev in Thread] Current Thread [Next in Thread>