[libvirt] [libvirt-glib 3/7] Add gvir_config_xml_node_to_string helper

Christophe Fergeau cfergeau at redhat.com
Mon Feb 6 11:56:13 UTC 2012


---
 libvirt-gconfig/libvirt-gconfig-helpers-private.h |    1 +
 libvirt-gconfig/libvirt-gconfig-helpers.c         |   20 ++++++++++++++++++++
 2 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/libvirt-gconfig/libvirt-gconfig-helpers-private.h b/libvirt-gconfig/libvirt-gconfig-helpers-private.h
index 96ec02e..514aeb0 100644
--- a/libvirt-gconfig/libvirt-gconfig-helpers-private.h
+++ b/libvirt-gconfig/libvirt-gconfig-helpers-private.h
@@ -56,6 +56,7 @@ char *gvir_config_xml_get_child_element_content_glib (xmlNode    *node,
                                                       const char *child_name);
 xmlChar *gvir_config_xml_get_attribute_content(xmlNodePtr node,
                                                const char *attr_name);
+char *gvir_config_xml_node_to_string(xmlNodePtr node);
 char *gvir_config_xml_get_attribute_content_glib(xmlNodePtr node,
                                                  const char *attr_name);
 const char *gvir_config_genum_get_nick (GType enum_type, gint value);
diff --git a/libvirt-gconfig/libvirt-gconfig-helpers.c b/libvirt-gconfig/libvirt-gconfig-helpers.c
index a9aaa0b..c34a312 100644
--- a/libvirt-gconfig/libvirt-gconfig-helpers.c
+++ b/libvirt-gconfig/libvirt-gconfig-helpers.c
@@ -308,3 +308,23 @@ gvir_config_genum_get_value (GType enum_type, const char *nick,
 
     g_return_val_if_reached(default_value);
 }
+
+G_GNUC_INTERNAL char *
+gvir_config_xml_node_to_string(xmlNodePtr node)
+{
+    xmlBufferPtr xmlbuf;
+    char *xml;
+
+    if (node == NULL)
+        return NULL;
+
+    xmlbuf = xmlBufferCreate();
+    if (xmlNodeDump(xmlbuf, node->doc, node, 0, 0) < 0)
+        return NULL;
+    else
+        xml = g_strndup((gchar *)xmlBufferContent(xmlbuf), xmlBufferLength(xmlbuf));
+
+    xmlBufferFree(xmlbuf);
+
+    return xml;
+}
-- 
1.7.7.6




More information about the libvir-list mailing list