On Wed, Oct 18, 2006 at 11:14:18PM +0200, Marius Konitzer wrote: > Consider the following XML document: > > <test><!-- a --><somenode><!-- b --></somenode><!-- c --></test> > > and let libxml2 evaluate the XPath expression "//comment()" on it. > libxml2 returns node-set (a,c,b) instead of (a,b,c), that I would have > expected. To be exact, "(//comment())[2]" gives singleton (c) instead of > the expected (b). > W3C's XPath recommendation indeed states, that predicates are to > determine "the position of the node in the node-set ordered in document > order if the axis is a forward axis" [1], which should be the case here. > > Don't hesitate to call me a fool for this stupid-looking question, I > probably just got something terribly wrong, right?
Not really, seems you hit a bug when element are not pre-ordered. Please create a bugzilla for this, I guess it's limited to comments (and possibly PIs) There is a good workaround, call xmlXPathOrderDocElems() on your document before running XPath queries on it, that fixes it and will speed up some XPath operations a lot. Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ [EMAIL PROTECTED] | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/ _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
