Do not output error when trying to parse XML data
[cascardo/atompub.git] / atom / entry.c
index d366500..069207b 100644 (file)
@@ -23,8 +23,6 @@
 #include <libxml/tree.h>
 #include <libxml/parser.h>
 
-#define ATOM_NAMESPACE "http://www.w3.org/2005/Atom"
-
 struct _atom_entry
 {
   xmlDocPtr doc;
@@ -54,7 +52,8 @@ atom_entry_new_data_len (char *data, size_t len)
   xmlNodePtr root;
   xmlNodePtr child;
   entry = g_slice_new0 (AtomEntry);
-  entry->doc = xmlReadMemory (data, len, NULL, NULL, XML_PARSE_RECOVER);
+  entry->doc = xmlReadMemory (data, len, NULL, NULL,
+                              XML_PARSE_RECOVER | XML_PARSE_NOERROR);
   if (entry->doc == NULL ||
       (root = xmlDocGetRootElement (entry->doc)) == NULL)
     {
@@ -157,21 +156,16 @@ atom_entry_summary_set (AtomEntry *entry, char *summary)
   entry->summary = g_strdup (summary);
 }
 
-char *
-atom_entry_string (AtomEntry *entry)
+void
+atom_entry_string (AtomEntry *entry, char **buffer, size_t *len)
 {
-  char *buffer;
-  int size;
-  xmlDocDumpMemory (entry->doc, &buffer, &size);
-  return buffer;
+  xmlDocDumpMemory (entry->doc, buffer, len);
 }
 
-size_t
-atom_entry_len (AtomEntry *entry)
+xmlNodePtr
+atom_entry_to_xmlnode (AtomEntry *entry)
 {
-  char *buffer;
-  int size;
-  xmlDocDumpMemory (entry->doc, &buffer, &size);
-  xmlFree (buffer);
-  return size;
+  if (entry->doc)
+    return xmlCopyNodeList (xmlDocGetRootElement (entry->doc));
+  return NULL;
 }