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