Re: [xml] What does it mean if I get an XML_NODESET with nodesetval == NULL?
- From: Daniel Veillard <veillard redhat com>
- To: "Richard W.M. Jones" <rjones redhat com>
- Cc: xml gnome org
- Subject: Re: [xml] What does it mean if I get an XML_NODESET with nodesetval == NULL?
- Date: Sun, 3 Mar 2013 22:04:07 +0800
On Fri, Mar 01, 2013 at 01:55:19PM +0000, Richard W.M. Jones wrote:
I have some code (below) which segfaults because xmlXPathEvalExpression
returns:
(gdb) print *labelObj
$1 = {type = XPATH_NODESET, nodesetval = 0x0, boolval = 0, floatval = 0,
stringval = 0x0, user = 0x0, index = 0, user2 = 0x0, index2 = 0}
I have previously thought it was impossible for xmlXPathEvalExpression
to return something != NULL but with nodesetval == NULL, but obviously
it can do this.
But what does it mean?
it means the evaluation type is a node set but the query failed
to return anything. Empty node sets may either have nodesetval as NULL
or nodesetval->nodeNr == 0 in the XPath return values.
It doesn't seem to mean "no nodes", because when I use the standalone
'xpath' program (which AIUI uses libxml2) it returns a single matching
node.
it is Perl which use XML::XPath and i don't think it uses libxml2
Rich.
But i agree there is something going on, libxml2 find the nodes
thinkpad:~/XML -> xmllint --shell tst.xml
/ > xpath /domain/seclabel[ model='selinux']/label
Object is a Node Set :
Set contains 1 nodes:
1 ELEMENT label
/ > xpath /domain/seclabel[ model='selinux']/imagelabel
Object is a Node Set :
Set contains 1 nodes:
1 ELEMENT imagelabel
/ >
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard redhat com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]