From 561726cd7f02058b37325bf6784c6d454f9498d2 Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Wed, 16 Aug 2017 10:26:09 +0200 Subject: [PATCH] util: introduce virXMLNodeContentString It's equivalent of calling virXPathString("string(.)", ctxt) but it doesn't have to use the XPath resolving and parsing. Signed-off-by: Pavel Hrdina --- src/libvirt_private.syms | 1 + src/util/virxml.c | 16 ++++++++++++++++ src/util/virxml.h | 1 + 3 files changed, 18 insertions(+) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 5f6398fc12..7b477a561e 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2954,6 +2954,7 @@ virVHBAPathExists; virXMLCheckIllegalChars; virXMLChildElementCount; virXMLExtractNamespaceXML; +virXMLNodeContentString; virXMLNodeNameEqual; virXMLNodeSanitizeNamespaces; virXMLNodeToString; diff --git a/src/util/virxml.c b/src/util/virxml.c index d7a8f7267b..562a4bf3ba 100644 --- a/src/util/virxml.c +++ b/src/util/virxml.c @@ -540,6 +540,22 @@ virXMLPropStringLimit(xmlNodePtr node, } +/** + * virXMLNodeContentString: + * @node: XML dom node pointer + * + * Convenience function to return copy of content of an XML node. + * + * Returns the content value as string or NULL in case of failure. + * The caller is responsible for freeing the returned buffer. + */ +char * +virXMLNodeContentString(xmlNodePtr node) +{ + return (char *)xmlNodeGetContent(node); +} + + /** * virXPathBoolean: * @xpath: the XPath string to evaluate diff --git a/src/util/virxml.h b/src/util/virxml.h index 1ecc6b0a61..86baeb37a7 100644 --- a/src/util/virxml.h +++ b/src/util/virxml.h @@ -76,6 +76,7 @@ char * virXMLPropString(xmlNodePtr node, char * virXMLPropStringLimit(xmlNodePtr node, const char *name, size_t maxlen); +char * virXMLNodeContentString(xmlNodePtr node); long virXMLChildElementCount(xmlNodePtr node); /* Internal function; prefer the macros below. */