summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2012-11-22 16:58:16 +0100
committerJens Georg <mail@jensge.org>2012-11-22 16:58:54 +0100
commit156943e00ad17f2a61731f362b19313ecaa6fbbf (patch)
treee91c11b3d23d9f972b37505df96b5f657bff5013
parent0553d87abb8f89b4e773603c0cb9abbb4454d096 (diff)
downloadgupnp-av-156943e00ad17f2a61731f362b19313ecaa6fbbf.tar.gz
Add function to dump XML of a DIDLObject
-rw-r--r--libgupnp-av/gupnp-didl-lite-object.c27
-rw-r--r--libgupnp-av/gupnp-didl-lite-object.h3
2 files changed, 30 insertions, 0 deletions
diff --git a/libgupnp-av/gupnp-didl-lite-object.c b/libgupnp-av/gupnp-didl-lite-object.c
index 30533c5..ff6bebf 100644
--- a/libgupnp-av/gupnp-didl-lite-object.c
+++ b/libgupnp-av/gupnp-didl-lite-object.c
@@ -2428,3 +2428,30 @@ gupnp_didl_lite_object_apply_fragments (GUPnPDIDLLiteObject *object,
xmlFreeDoc (modified.doc);
return result;
}
+
+/**
+ * gupnp_didl_lite_object_get_xml_string:
+ * @object: #GUPnPDIDLLiteObject
+ *
+ * Get the representation of this object as an XML string.
+ * Returns: (transfer full): XML representation of this object as string.
+ **/
+char *
+gupnp_didl_lite_object_get_xml_string (GUPnPDIDLLiteObject *object)
+{
+ xmlBuffer *buffer = NULL;
+ char *ret = NULL;
+
+ buffer = xmlBufferCreate ();
+ xmlNodeDump (buffer,
+ object->priv->xml_doc->doc,
+ object->priv->xml_node,
+ 0,
+ 0);
+
+ ret = g_strndup (BAD_CAST (xmlBufferContent (buffer)),
+ xmlBufferLength (buffer));
+ xmlBufferFree (buffer);
+
+ return ret;
+}
diff --git a/libgupnp-av/gupnp-didl-lite-object.h b/libgupnp-av/gupnp-didl-lite-object.h
index 6ca982d..872f26b 100644
--- a/libgupnp-av/gupnp-didl-lite-object.h
+++ b/libgupnp-av/gupnp-didl-lite-object.h
@@ -301,6 +301,9 @@ gupnp_didl_lite_object_apply_fragments
gchar **new_fragments,
gint new_size);
+char *
+gupnp_didl_lite_object_get_xml_string (GUPnPDIDLLiteObject *object);
+
G_END_DECLS
#endif /* __GUPNP_DIDL_LITE_OBJECT_H__ */