On Mon, 2012-01-09 at 18:54 -0800, Ming Chen wrote:

> According to the XPath spec (V2.0 section 3.2.3 Unabbreviated 
> Syntax) : child::node() selects all the children of the context node. Note 
> that no attribute nodes are returned, because attributes are not 
> children.

Note, libxml2 actually only supports XPath 1, not XPath 2.

However,
   /descendant::node()/rec/child::node()[1]
will match text nodes, and you're getting the blank (whitespace-only)
text node that's the first child of elements, since your input is
"indented".

> Shouldn’t it have the same output as 
> /descendant::node()/rec/child::*[1] and /descendant::node()/rec/para[1]?
No.

The first child node in
    <rec id="1">
      <para type="error" position="1"/>
is the newline and spaces between id="1"> and <para.


Liam

-- 
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/

_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to