Просмотр исходного кода

Replace InitDocument() with Clear() and make it part of the API.

Martinsh Shaiters 13 лет назад
Родитель
Сommit
a9d42b0dd3
2 измененных файлов с 9 добавлено и 8 удалено
  1. 6 7
      tinyxml2.cpp
  2. 3 1
      tinyxml2.h

+ 6 - 7
tinyxml2.cpp

@@ -1520,8 +1520,10 @@ XMLDocument::~XMLDocument()
 }
 
 
-void XMLDocument::InitDocument()
+void XMLDocument::Clear()
 {
+    DeleteChildren();
+
     _errorID = XML_NO_ERROR;
     _errorStr1 = 0;
     _errorStr2 = 0;
@@ -1578,8 +1580,7 @@ XMLUnknown* XMLDocument::NewUnknown( const char* str )
 
 XMLError XMLDocument::LoadFile( const char* filename )
 {
-    DeleteChildren();
-    InitDocument();
+    Clear();
     FILE* fp = 0;
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1400 )
@@ -1600,8 +1601,7 @@ XMLError XMLDocument::LoadFile( const char* filename )
 
 XMLError XMLDocument::LoadFile( FILE* fp )
 {
-    DeleteChildren();
-    InitDocument();
+    Clear();
 
     fseek( fp, 0, SEEK_END );
     size_t size = ftell( fp );
@@ -1662,8 +1662,7 @@ XMLError XMLDocument::SaveFile( FILE* fp, bool compact )
 
 XMLError XMLDocument::Parse( const char* p, size_t len )
 {
-    DeleteChildren();
-    InitDocument();
+    Clear();
 
     if ( !p || !*p ) {
         SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0 );

+ 3 - 1
tinyxml2.h

@@ -1532,6 +1532,9 @@ public:
     }
     /// If there is an error, print it to stdout.
     void PrintError() const;
+    
+    /// Clear the document, resetting it to the initial state.
+    void Clear();
 
     // internal
     char* Identify( char* p, XMLNode** node );
@@ -1546,7 +1549,6 @@ public:
 private:
     XMLDocument( const XMLDocument& );	// not supported
     void operator=( const XMLDocument& );	// not supported
-    void InitDocument();
 
     bool        _writeBOM;
     bool        _processEntities;