+AtomContent *
+atom_entry_content (AtomEntry *entry)
+{
+ return entry->content;
+}
+
+void
+atom_entry_content_set (AtomEntry *entry, AtomContent *content)
+{
+ if (entry->content)
+ atom_content_delete (entry->content);
+ entry->content = content;
+}
+
+static void
+atom_entry_update_xmlnode (AtomEntry *entry)
+{
+ xmlNodePtr root;
+ xmlNodePtr id;
+ xmlNodePtr title;
+ xmlNodePtr updated;
+ xmlNodePtr summary;
+ xmlNodePtr author;
+ xmlNodePtr cat;
+ char *updatedstr;
+ int i;
+ if (entry->doc == NULL)
+ {
+ entry->doc = xmlNewDoc ("1.0");
+ root = xmlNewNode (NULL, "entry");
+ xmlNewNs (root, ATOM_NAMESPACE, NULL);
+ xmlDocSetRootElement (entry->doc, root);
+ }
+ else
+ {
+ xmlNodePtr child;
+ xmlNodePtr next;
+ root = xmlDocGetRootElement (entry->doc);
+ child = root->xmlChildrenNode;
+ while (child != NULL)
+ {
+ next = child->next;
+ if (!xmlStrcmp (child->name, "id") ||
+ !xmlStrcmp (child->name, "title") ||
+ !xmlStrcmp (child->name, "updated") ||
+ !xmlStrcmp (child->name, "summary") ||
+ !xmlStrcmp (child->name, "author") ||
+ !xmlStrcmp (child->name, "category") ||
+ !xmlStrcmp (child->name, "content"))
+ {
+ xmlUnlinkNode (child);
+ xmlFreeNode (child);
+ }
+ child = next;
+ }
+ }
+ id = xmlNewTextChild (root, NULL, "id", atom_id_string (entry->id));
+ title = xmlNewTextChild (root, NULL, "title", entry->title);
+ updatedstr = atom_entry_updated_to_iso8601 (entry);
+ updated = xmlNewTextChild (root, NULL, "updated", updatedstr);
+ g_free (updatedstr);
+ if (entry->summary)
+ summary = xmlNewTextChild (root, NULL, "summary", entry->summary);
+ for (i = 0; i < entry->authors->len; i++)
+ {
+ AtomPerson *person;
+ person = g_ptr_array_index (entry->authors, i);
+ author = atom_person_to_xmlnode (person, "author");
+ xmlAddChild (root, author);
+ }
+ for (i = 0; entry->categories && i < entry->categories->len; i++)
+ {
+ AtomCategory *category;
+ category = g_ptr_array_index (entry->categories, i);
+ cat = atom_category_to_xmlnode (category, "category");
+ xmlAddChild (root, cat);
+ }
+ if (entry->content)
+ xmlAddChild (root, atom_content_to_xmlnode (entry->content));
+}
+