XmlDocument.Save Metoda

Definicja

Zapisuje dokument XML w określonej lokalizacji.

Przeciążenia

Save(Stream)

Zapisuje dokument XML w określonym strumieniu.

Save(TextWriter)

Zapisuje dokument XML w określonym TextWriterpliku .

Save(String)

Zapisuje dokument XML w określonym pliku. Jeśli określony plik istnieje, ta metoda zastępuje go.

Save(XmlWriter)

Zapisuje dokument XML w określonym obiekcie XmlWriter.

Save(Stream)

Zapisuje dokument XML w określonym strumieniu.

public:
 virtual void Save(System::IO::Stream ^ outStream);
public virtual void Save (System.IO.Stream outStream);
abstract member Save : System.IO.Stream -> unit
override this.Save : System.IO.Stream -> unit
Public Overridable Sub Save (outStream As Stream)

Parametry

outStream
Stream

Strumień, do którego chcesz zapisać.

Wyjątki

Operacja nie spowoduje utworzenia poprawnie sformułowanego dokumentu XML (na przykład bez elementu dokumentu ani zduplikowanych deklaracji XML).

Uwagi

Białe znaki są zachowywane tylko wtedy, gdy PreserveWhitespace jest ustawiona wartość true.

Właściwość XmlDeclaration bieżącego XmlDocument obiektu określa atrybut kodowania w zapisanym dokumencie. Wartość atrybutu kodowania jest pobierana z XmlDeclaration.Encoding właściwości . Jeśli obiekt XmlDocument nie ma deklaracji XmlDeclaration lub jeśli właściwość XmlDeclaration nie ma atrybutu kodowania, zapisany dokument również nie będzie miał tego atrybutu.

Po zapisaniu dokumentu atrybuty xmlns są generowane w celu poprawnego utrwalania tożsamości węzła (lokalnej nazwy i identyfikatora URI przestrzeni nazw). Na przykład poniższy kod w języku C#

XmlDocument doc = new XmlDocument();  
doc.AppendChild(doc.CreateElement("item","urn:1"));  
doc.Save(Console.Out);  

generuje ten atrybut <item xmls="urn:1"/>xmls .

Ta metoda jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).

Należy pamiętać, że tylko Save metoda wymusza poprawnie sformułowany dokument XML. Wszystkie inne Save przeciążenia gwarantują tylko dobrze sformułowany fragment.

Dotyczy

Save(TextWriter)

Zapisuje dokument XML w określonym TextWriterpliku .

public:
 virtual void Save(System::IO::TextWriter ^ writer);
public virtual void Save (System.IO.TextWriter writer);
abstract member Save : System.IO.TextWriter -> unit
override this.Save : System.IO.TextWriter -> unit
Public Overridable Sub Save (writer As TextWriter)

Parametry

writer
TextWriter

Element TextWriter , do którego chcesz zapisać.

Wyjątki

Operacja nie spowoduje utworzenia poprawnie sformułowanego dokumentu XML (na przykład bez elementu dokumentu ani zduplikowanych deklaracji XML).

Uwagi

Kodowanie w obiekcie TextWriter określa kodowanie zapisane (kodowanie węzła XmlDeclaration jest zastępowane przez kodowanie elementu TextWriter). Jeśli w elemecie TextWriternie określono kodowania , XmlDocument parametr jest zapisywany bez atrybutu kodowania.

Ta metoda jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).

Należy pamiętać, że tylko Save metoda wymusza poprawnie sformułowany dokument XML. Wszystkie inne Save przeciążenia gwarantują tylko dobrze sformułowany fragment.

Dotyczy

Save(String)

Zapisuje dokument XML w określonym pliku. Jeśli określony plik istnieje, ta metoda zastępuje go.

public:
 virtual void Save(System::String ^ filename);
public virtual void Save (string filename);
abstract member Save : string -> unit
override this.Save : string -> unit
Public Overridable Sub Save (filename As String)

Parametry

filename
String

Lokalizacja pliku, w którym chcesz zapisać dokument.

Wyjątki

Operacja nie spowoduje utworzenia poprawnie sformułowanego dokumentu XML (na przykład bez elementu dokumentu ani zduplikowanych deklaracji XML).

Przykłady

Poniższy przykład ładuje kod XML do obiektu XmlDocument, modyfikuje go, a następnie zapisuje go w pliku o nazwie 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" );
}

using System;
using System.Xml;

public class Sample {

  public static void Main() {

    // Create the XmlDocument.
    XmlDocument doc = new 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");
  }
}
Imports System.Xml

public class Sample 

  public shared sub Main() 
 
    ' Create the XmlDocument.
    Dim doc as XmlDocument = new XmlDocument()
    doc.LoadXml("<item><name>wrench</name></item>")

    ' Add a price element.
    Dim newElem as XmlElement = 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")
 
  end sub
end class

Plik data.xml będzie zawierać następujący kod XML: <item><name>wrench</name><price>10.95</price></item>.

Uwagi

Białe znaki są zachowywane w pliku wyjściowym tylko wtedy, gdy PreserveWhitespace jest ustawiona wartość true.

Właściwość XmlDeclaration bieżącego XmlDocument obiektu określa atrybut kodowania w zapisanym dokumencie. Wartość atrybutu kodowania jest pobierana z XmlDeclaration.Encoding właściwości . Jeśli obiekt XmlDocument nie ma deklaracji XmlDeclaration lub jeśli właściwość XmlDeclaration nie ma atrybutu kodowania, zapisany dokument również nie będzie miał tego atrybutu.

Po zapisaniu dokumentu atrybuty xmlns są generowane w celu poprawnego utrwalania tożsamości węzła (lokalnej nazwy i identyfikatora URI przestrzeni nazw). Na przykład poniższy kod w języku C#

XmlDocument doc = new XmlDocument();  
doc.AppendChild(doc.CreateElement("item","urn:1"));  
doc.Save(Console.Out);  

generuje ten atrybut <item xmls="urn:1"/>xmls .

Ta metoda jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).

Należy pamiętać, że tylko Save metoda wymusza poprawnie sformułowany dokument XML. Wszystkie inne Save przeciążenia gwarantują tylko dobrze sformułowany fragment.

Dotyczy

Save(XmlWriter)

Zapisuje dokument XML w określonym obiekcie XmlWriter.

public:
 virtual void Save(System::Xml::XmlWriter ^ w);
public virtual void Save (System.Xml.XmlWriter w);
abstract member Save : System.Xml.XmlWriter -> unit
override this.Save : System.Xml.XmlWriter -> unit
Public Overridable Sub Save (w As XmlWriter)

Parametry

w
XmlWriter

Element XmlWriter , do którego chcesz zapisać.

Wyjątki

Operacja nie spowoduje dobrze sformułowanego dokumentu XML (na przykład nie ma elementu dokumentu ani zduplikowanych deklaracji XML).

Przykłady

Poniższy przykład ładuje kod XML do XmlDocument obiektu i zapisuje go w pliku.

#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 and auto-indent the output.
   XmlTextWriter^ writer = gcnew XmlTextWriter( "data.xml", nullptr );
   writer->Formatting = Formatting::Indented;
   doc->Save( writer );
}

using System;
using System.Xml;

public class Sample {

  public static void Main() {

    // Create the XmlDocument.
    XmlDocument doc = new 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);

   XmlWriterSettings settings = new XmlWriterSettings();
   settings.Indent = true;
   // Save the document to a file and auto-indent the output.
   XmlWriter writer = XmlWriter.Create("data.xml", settings);
    doc.Save(writer);
  }
}
Imports System.Xml

public class Sample 

  public shared sub Main() 
 
    ' Create the XmlDocument.
    Dim doc as XmlDocument = new XmlDocument()
    doc.LoadXml("<item><name>wrench</name></item>")

   ' Add a price element.
   Dim newElem as XmlElement = doc.CreateElement("price")
   newElem.InnerText = "10.95"
   doc.DocumentElement.AppendChild(newElem)

   Dim settings As New XmlWriterSettings()
   settings.Indent = True
   ' Save the document to a file and auto-indent the output.
   Dim writer As XmlWriter = XmlWriter.Create("data.xml", settings)
    doc.Save(writer)
  end sub
end class

Uwagi

Odstęp jest zachowywany tylko wtedy, gdy PreserveWhitespace ustawiono wartość true.

Kodowanie w obiekcie XmlWriter określa kodowanie, które zostało zapisane (kodowanie węzła XmlDeclaration jest zastępowane przez kodowanie elementu XmlWriter). Jeśli w elemecie XmlWriternie określono kodowania , XmlDocument parametr jest zapisywany bez atrybutu kodowania.

Po zapisaniu dokumentu atrybuty xmlns są generowane w celu poprawnego utrwalania tożsamości węzła (LocalName + NamespaceURI). Na przykład następujący kod w języku C#

XmlDocument doc = new XmlDocument();  
doc.AppendChild(doc.CreateElement("item","urn:1"));  
doc.Save(Console.Out);  

generuje ten atrybut xmls:

<item  
    xmls="urn:1"/>  

Ta metoda jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).

Należy pamiętać, że tylko Save metoda wymusza dobrze sformułowany dokument XML. Wszystkie inne Save przeciążenia gwarantują tylko dobrze sformułowany fragment.

Zobacz też

Dotyczy