XmlDocument::Save Method (String^)


Saves the XML document to the specified file. If the specified file exists, this method overwrites it.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

virtual void Save(
	String^ filename


Type: System::String^

The location of the file where you want to save the document.

Exception Condition

The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).

White space is preserved in the output file only if PreserveWhitespace is set to true.

The XmlDeclaration of the current XmlDocument object determines the encoding attribute in the saved document. The value of the encoding attribute is taken from the XmlDeclaration::Encoding property. If the XmlDocument does not have an XmlDeclaration, or if the XmlDeclaration does not have an encoding attribute, the saved document will not have one either.

When the document is saved, xmlns attributes are generated to persist the node identity (local name + namespace URI) correctly. For example, the following C# code

XmlDocument doc = new XmlDocument();

generates this xmls attribute <item xmls="urn:1"/>.

This method is a Microsoft extension to the Document Object Model (DOM).

Note that only the Save method enforces a well-formed XML document. All other Save overloads only guarantee a well-formed fragment.

The following example loads XML into an XmlDocument object, modifies it, and then saves it to a file named data.xml.

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
int main()

   // Create the XmlDocument.
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<item><name>wrench</name></item>" );

   // Add a price element.
   XmlElement^ newElem = doc->CreateElement( "price" );
   newElem->InnerText = "10.95";
   doc->DocumentElement->AppendChild( newElem );

   // Save the document to a file. White space is
   // preserved (no white space).
   doc->PreserveWhitespace = true;
   doc->Save( "data.xml" );

The data.xml file will contain the following XML: <item><name>wrench</name><price>10.95</price></item>.

.NET Framework
Available since 1.1
Return to top