XPath is good for random search of elements, not for accessing attributes of one node. Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> --- src/conf/domain_conf.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index cb1b5b55fb..6e424c96d8 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16209,19 +16209,15 @@ virDomainIdmapDefParseXML(xmlXPathContextPtr ctxt, * </iothreadids> */ static virDomainIOThreadIDDefPtr -virDomainIOThreadIDDefParseXML(xmlNodePtr node, - xmlXPathContextPtr ctxt) +virDomainIOThreadIDDefParseXML(xmlNodePtr node) { virDomainIOThreadIDDefPtr iothrid; - xmlNodePtr oldnode = ctxt->node; char *tmp = NULL; if (VIR_ALLOC(iothrid) < 0) return NULL; - ctxt->node = node; - - if (!(tmp = virXPathString("string(./@id)", ctxt))) { + if (!(tmp = virXMLPropString(node, "id"))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing 'id' attribute in <iothread> element")); goto error; @@ -16235,7 +16231,6 @@ virDomainIOThreadIDDefParseXML(xmlNodePtr node, cleanup: VIR_FREE(tmp); - ctxt->node = oldnode; return iothrid; error: @@ -16275,7 +16270,7 @@ virDomainDefParseIOThreads(virDomainDefPtr def, for (i = 0; i < n; i++) { virDomainIOThreadIDDefPtr iothrid = NULL; - if (!(iothrid = virDomainIOThreadIDDefParseXML(nodes[i], ctxt))) + if (!(iothrid = virDomainIOThreadIDDefParseXML(nodes[i]))) goto error; if (virDomainIOThreadIDFind(def, iothrid->iothread_id)) { -- 2.13.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list