XDocument.Save Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Serializuje to XDocument do pliku , TextWriterlub .XmlWriter
Przeciążenia
Save(XmlWriter) | |
Save(Stream) | |
Save(TextWriter) |
Serializuj to XDocument do .TextWriter |
Save(String) |
Serializuj to XDocument do pliku, zastępując istniejący plik, jeśli istnieje. |
Save(Stream, SaveOptions) |
Zwraca tę XDocument wartość do określonego Streamelementu , opcjonalnie określając zachowanie formatowania. |
Save(TextWriter, SaveOptions) |
Serializuj to XDocument do TextWriterelementu , opcjonalnie wyłączając formatowanie. |
Save(String, SaveOptions) |
Serializuj to XDocument do pliku, opcjonalnie wyłączając formatowanie. |
Save(XmlWriter)
public:
void Save(System::Xml::XmlWriter ^ writer);
public void Save (System.Xml.XmlWriter writer);
member this.Save : System.Xml.XmlWriter -> unit
Public Sub Save (writer As XmlWriter)
Parametry
Przykłady
W poniższym przykładzie pokazano, jak zapisać element w XDocument obiekcie XmlWriter.
StringBuilder sb = new StringBuilder();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Indent = true;
using (XmlWriter xw = XmlWriter.Create(sb, xws)) {
XDocument doc = new XDocument(
new XElement("Child",
new XElement("GrandChild", "some content")
)
);
doc.Save(xw);
}
Console.WriteLine(sb.ToString());
Dim sb As StringBuilder = New StringBuilder()
Dim xws As XmlWriterSettings = New XmlWriterSettings()
xws.OmitXmlDeclaration = True
xws.Indent = True
Using xw = XmlWriter.Create(sb, xws)
Dim doc As XDocument = New XDocument(<Child><GrandChild>some content</GrandChild></Child>)
doc.Save(xw)
End Using
Console.WriteLine(sb.ToString())
Ten przykład generuje następujące wyniki:
<Child>
<GrandChild>some content</GrandChild>
</Child>
Zobacz też
- WriteTo(XmlWriter)
- Load
- Parse
- LINQ to XML — przegląd
- Odczytywanie i zapisywanie zakodowanego dokumentu
Dotyczy
Save(Stream)
public:
void Save(System::IO::Stream ^ stream);
public void Save (System.IO.Stream stream);
member this.Save : System.IO.Stream -> unit
Public Sub Save (stream As Stream)
Parametry
Uwagi
Serializowany kod XML zostanie wcięty. Wszystkie nieistotne białe znaki zostaną usunięte, a dodatkowe białe znaki zostaną dodane, aby kod XML został prawidłowo wcięty. Zachowanie tej metody polega na tym, że nieistotne białe znaki nie zostaną zachowane.
Jeśli chcesz kontrolować biały znak, użyj przeciążenia Save , które przyjmuje SaveOptions jako parametr. DisableFormatting Użyj opcji , aby zapisać niezidentyfikowany kod XML. Spowoduje to zapisanie wszystkich białych spacji dokładnie tak, jak pokazano w drzewie XML.
Użyj OmitDuplicateNamespaces opcji , jeśli chcesz usunąć zduplikowane deklaracje przestrzeni nazw.
Dotyczy
Save(TextWriter)
Serializuj to XDocument do .TextWriter
public:
void Save(System::IO::TextWriter ^ textWriter);
public void Save (System.IO.TextWriter textWriter);
member this.Save : System.IO.TextWriter -> unit
Public Sub Save (textWriter As TextWriter)
Parametry
- textWriter
- TextWriter
Element TextWriter , do którego XDocument zostanie zapisany.
Przykłady
Poniższy przykład tworzy element XDocument, zapisuje dokument w obiekcie StringWriter, a następnie drukuje ciąg w konsoli programu .
StringBuilder sb = new StringBuilder();
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
TextWriter tr = new StringWriter(sb);
doc.Save(tr);
Console.WriteLine(sb.ToString());
Dim sb As StringBuilder = New StringBuilder()
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
Dim tr As TextWriter = New StringWriter(sb)
doc.Save(tr)
Console.WriteLine(sb.ToString())
Ten przykład generuje następujące wyniki:
<?xml version="1.0" encoding="utf-16"?>
<Root>
<Child>content</Child>
</Root>
Uwagi
Serializowany kod XML zostanie wcięty. Wszystkie nieistotne białe znaki zostaną usunięte, a dodatkowe białe znaki zostaną dodane, aby kod XML został prawidłowo wcięty. Zachowanie tej metody polega na tym, że nieistotne białe znaki nie zostaną zachowane.
Jeśli chcesz kontrolować biały znak, użyj przeciążenia Save , które przyjmuje SaveOptions jako parametr. Aby uzyskać więcej informacji, zobacz Zachowywanie białych znaków podczas ładowania lub analizowania kodu XML i Zachowywanie białych znaków podczas serializacji.
Zobacz też
- WriteTo(XmlWriter)
- Load
- Parse
- LINQ to XML — przegląd
- Odczytywanie i zapisywanie zakodowanego dokumentu
Dotyczy
Save(String)
Serializuj to XDocument do pliku, zastępując istniejący plik, jeśli istnieje.
public:
void Save(System::String ^ fileName);
public void Save (string fileName);
member this.Save : string -> unit
Public Sub Save (fileName As String)
Parametry
- fileName
- String
Ciąg zawierający nazwę pliku.
Przykłady
Poniższy przykład tworzy plik XDocument, zapisuje dokument w pliku, a następnie drukuje plik w konsoli programu .
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
doc.Save("Root.xml");
Console.WriteLine(File.ReadAllText("Root.xml"));
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
doc.Save("Root.xml")
Console.WriteLine(File.ReadAllText("Root.xml"))
Ten przykład generuje następujące wyniki:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Child>content</Child>
</Root>
Uwagi
Serializowany kod XML zostanie wcięty. Wszystkie nieistotne białe znaki zostaną usunięte, a dodatkowe białe znaki zostaną dodane tak, aby kod XML został poprawnie wcięty. Zachowanie tej metody polega na tym, że nieistotne odstępy nie zostaną zachowane.
Jeśli chcesz kontrolować białe znaki, użyj przeciążenia Save , które przyjmuje SaveOptions jako parametr. Aby uzyskać więcej informacji, zobacz Zachowywanie białych znaków podczas ładowania lub analizowania kodu XML i Zachowywanie odstępu podczas serializacji.
Zobacz też
- WriteTo(XmlWriter)
- Load
- Parse
- LINQ to XML — przegląd
- Odczytywanie i zapisywanie zakodowanego dokumentu
Dotyczy
Save(Stream, SaveOptions)
public:
void Save(System::IO::Stream ^ stream, System::Xml::Linq::SaveOptions options);
public void Save (System.IO.Stream stream, System.Xml.Linq.SaveOptions options);
member this.Save : System.IO.Stream * System.Xml.Linq.SaveOptions -> unit
Public Sub Save (stream As Stream, options As SaveOptions)
Parametry
- options
- SaveOptions
Element SaveOptions określający zachowanie formatowania.
Uwagi
Domyślnie ustawiono options
wartość None. Ta opcja spowoduje usunięcie wszystkich niepotrzebnych nieistotnych białych znaków i dodanie odpowiedniego nieistotnego odstępu, tak aby kod XML był poprawnie wcięty.
Jeśli chcesz zapisać niezidentyfikowany kod XML, określ flagę DisableFormatting .options
Spowoduje to zapisanie wszystkich białych spacji dokładnie tak, jak pokazano w drzewie XML.
Użyj OmitDuplicateNamespaces opcji, jeśli chcesz usunąć zduplikowane deklaracje przestrzeni nazw.
Dotyczy
Save(TextWriter, SaveOptions)
Serializuj to XDocument do TextWriterelementu , opcjonalnie wyłączając formatowanie.
public:
void Save(System::IO::TextWriter ^ textWriter, System::Xml::Linq::SaveOptions options);
public void Save (System.IO.TextWriter textWriter, System.Xml.Linq.SaveOptions options);
member this.Save : System.IO.TextWriter * System.Xml.Linq.SaveOptions -> unit
Public Sub Save (textWriter As TextWriter, options As SaveOptions)
Parametry
- textWriter
- TextWriter
Element , TextWriter aby wyświetlić kod XML.
- options
- SaveOptions
Element SaveOptions określający zachowanie formatowania.
Przykłady
W poniższym przykładzie przedstawiono dwa zastosowania tej metody. Pierwsze użycie serializuje XDocument element z formatowaniem. Drugi zachowuje białe znaki. Ze względu na to, że dokument nie ma w nim białego odstępu, zachowując białe znaki wyjściowe XML bez żadnego wcięcia.
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
StringBuilder sb1 = new StringBuilder();
using (StringWriter sr1 = new StringWriter(sb1)) {
doc.Save(sr1, SaveOptions.None);
Console.WriteLine(sb1.ToString());
}
StringBuilder sb2 = new StringBuilder();
using (StringWriter sr2 = new StringWriter(sb2)) {
doc.Save(sr2, SaveOptions.DisableFormatting);
Console.WriteLine(sb2.ToString());
}
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
Dim sb1 As StringBuilder = New StringBuilder()
Using sr1 = New StringWriter(sb1)
doc.Save(sr1, SaveOptions.None)
Console.WriteLine(sb1.ToString())
End Using
Dim sb2 As StringBuilder = New StringBuilder()
Using sr2 = New StringWriter(sb2)
doc.Save(sr2, SaveOptions.DisableFormatting)
Console.WriteLine(sb2.ToString())
End Using
Ten przykład generuje następujące wyniki:
<?xml version="1.0" encoding="utf-16"?>
<Root>
<Child>content</Child>
</Root>
<?xml version="1.0" encoding="utf-16"?><Root><Child>content</Child></Root>
Uwagi
Jeśli chcesz zapisać niezidentyfikowany kod XML, określ flagę DisableFormatting .options
Spowoduje to zapisanie wszystkich białych znaków dokładnie tak, jak pokazano w drzewie XML.
Jeśli chcesz zapisać wcięcie XML, nie określ flagi DisableFormatting dla options
elementu . Spowoduje to usunięcie wszystkich niepotrzebnych nieistotnych białych znaków i dodanie odpowiedniego nieistotnego odstępu, tak aby kod XML był poprawnie wcięty. Jest to domyślne zachowanie i zachowanie przeciążeń Save metod, które nie przyjmują options
jako parametru.
Aby uzyskać więcej informacji, zobacz Zachowywanie białych znaków podczas ładowania lub analizowania kodu XML i Zachowywanie odstępu podczas serializacji.
Zobacz też
- WriteTo(XmlWriter)
- Load
- Parse
- LINQ to XML — przegląd
- Odczytywanie i zapisywanie zakodowanego dokumentu
Dotyczy
Save(String, SaveOptions)
Serializuj to XDocument do pliku, opcjonalnie wyłączając formatowanie.
public:
void Save(System::String ^ fileName, System::Xml::Linq::SaveOptions options);
public void Save (string fileName, System.Xml.Linq.SaveOptions options);
member this.Save : string * System.Xml.Linq.SaveOptions -> unit
Public Sub Save (fileName As String, options As SaveOptions)
Parametry
- fileName
- String
Ciąg zawierający nazwę pliku.
- options
- SaveOptions
Element SaveOptions określający zachowanie formatowania.
Przykłady
W poniższym przykładzie przedstawiono dwa zastosowania tej metody. Pierwsze użycie zachowuje białe znaki. Druga serializuje XDocument element z wcięciem.
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
doc.Save("Root1.xml", SaveOptions.DisableFormatting);
Console.WriteLine(File.ReadAllText("Root1.xml"));
doc.Save("Root2.xml", SaveOptions.None);
Console.WriteLine(File.ReadAllText("Root2.xml"));
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
doc.Save("Root1.xml", SaveOptions.DisableFormatting)
Console.WriteLine(File.ReadAllText("Root1.xml"))
doc.Save("Root2.xml", SaveOptions.None)
Console.WriteLine(File.ReadAllText("Root2.xml"))
Ten przykład generuje następujące wyniki:
<?xml version="1.0" encoding="utf-8"?><Root><Child>content</Child></Root>
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Child>content</Child>
</Root>
Uwagi
Jeśli chcesz zapisać niezidentyfikowany kod XML, określ flagę DisableFormatting .options
Spowoduje to zapisanie wszystkich białych znaków dokładnie tak, jak pokazano w drzewie XML.
Jeśli chcesz zapisać wcięcie XML, nie określ flagi DisableFormatting dla options
elementu . Spowoduje to usunięcie wszystkich niepotrzebnych nieistotnych białych znaków i dodanie odpowiedniego nieistotnego odstępu, tak aby kod XML był poprawnie wcięty. Jest to domyślne zachowanie i zachowanie przeciążeń Save metod, które nie przyjmują options
jako parametru.
Aby uzyskać więcej informacji, zobacz Zachowywanie białych znaków podczas ładowania lub analizowania kodu XML i Zachowywanie odstępu podczas serializacji.
Zobacz też
- WriteTo(XmlWriter)
- Load
- Parse
- LINQ to XML — przegląd
- Instrukcje: odczytywanie i zapisywanie zakodowanego dokumentu