Subject: RE: [XPath 2.0] Two XPath expressions to the same node, yielding different results with "instance of text()"
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 7 Oct 2009 22:09:23 +0100
|
> Why does this XPath expression return true:
>
> /FitnessCenter/Member[1]/MembershipFee/node() instance of text()
>
> whereas this returns false:
>
> //MembershipFee[1]/node() instance of text()
>
> Both reference the node within the first MembershipFee
> element; so I would think they should both return true.
Probably because the first expression selects the singleton text child of a
single MembershipFee element, whereas the second expression selects the
children of every MembershipFee element that is the first child of its
parent. Try "instance of text()*" to verify this.
//X[1] is a common error when (//X)[1] is intended. Or it may be better to
write /descendant::X[1] for clarity.
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
|