From 09b5dfdcb0707c39874997efbf207ff554334c34 Mon Sep 17 00:00:00 2001
From: "arseny.kapoulkine"
 <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>
Date: Tue, 26 Oct 2010 17:09:34 +0000
Subject: Added xml_document::reset, added append/prepend/insert child
 overloads for elements (with explicit name)

git-svn-id: http://pugixml.googlecode.com/svn/trunk@779 99668b35-9821-0410-8761-19e4c4f06640
---
 src/pugixml.cpp | 36 ++++++++++++++++++++++++++++++++++++
 src/pugixml.hpp | 10 +++++++++-
 2 files changed, 45 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/pugixml.cpp b/src/pugixml.cpp
index 833e43e..6850589 100644
--- a/src/pugixml.cpp
+++ b/src/pugixml.cpp
@@ -3989,6 +3989,42 @@ namespace pugi
 		return n;
 	}
 
+    xml_node xml_node::append_child(const char_t* name)
+    {
+        xml_node result = append_child(node_element);
+
+        result.set_name(name);
+
+        return result;
+    }
+
+    xml_node xml_node::prepend_child(const char_t* name)
+    {
+        xml_node result = prepend_child(node_element);
+
+        result.set_name(name);
+
+        return result;
+    }
+
+    xml_node xml_node::insert_child_after(const char_t* name, const xml_node& node)
+    {
+        xml_node result = insert_child_after(node_element, node);
+
+        result.set_name(name);
+
+        return result;
+    }
+
+    xml_node xml_node::insert_child_before(const char_t* name, const xml_node& node)
+    {
+        xml_node result = insert_child_before(node_element, node);
+
+        result.set_name(name);
+
+        return result;
+    }
+
 	xml_node xml_node::append_copy(const xml_node& proto)
 	{
 		xml_node result = append_child(proto.type());
diff --git a/src/pugixml.hpp b/src/pugixml.hpp
index 63e0233..ce4abe2 100644
--- a/src/pugixml.hpp
+++ b/src/pugixml.hpp
@@ -428,6 +428,12 @@ namespace pugi
 		xml_node insert_child_after(xml_node_type type, const xml_node& node);
 		xml_node insert_child_before(xml_node_type type, const xml_node& node);
 
+		// Add child element with specified name. Returns added node, or empty node on errors.
+		xml_node append_child(const char_t* name);
+		xml_node prepend_child(const char_t* name);
+		xml_node insert_child_after(const char_t* name, const xml_node& node);
+		xml_node insert_child_before(const char_t* name, const xml_node& node);
+
 		// Add a copy of the specified node as a child. Returns added node, or empty node on errors.
 		xml_node append_copy(const xml_node& proto);
 		xml_node prepend_copy(const xml_node& proto);
@@ -719,7 +725,6 @@ namespace pugi
 		xml_document(const xml_document&);
 		const xml_document& operator=(const xml_document&);
 
-		void reset();
 		void create();
 		void destroy();
 
@@ -732,6 +737,9 @@ namespace pugi
 		// Destructor, invalidates all node/attribute handles to this document
 		~xml_document();
 
+        // Removes all nodes, leaving the empty document
+		void reset();
+
 	#ifndef PUGIXML_NO_STL
 		// Load document from stream.
 		xml_parse_result load(std::basic_istream<char, std::char_traits<char> >& stream, unsigned int options = parse_default, xml_encoding encoding = encoding_auto);
-- 
cgit v1.2.3