Udostępnij za pośrednictwem


XElement.Save Metoda

Definicja

Serializuj bazowe drzewo XML tego elementu. Dane wyjściowe można zapisać w pliku, obiekcie XmlTextWriter, TextWriterlub .XmlWriter Opcjonalnie formatowanie (wcięcie) można wyłączyć.

Przeciążenia

Save(Stream)

Zwraca tę wartość XElement do określonego Streamelementu .

Save(TextWriter)

Serializuj ten element do elementu TextWriter.

Save(String)

Serializuj ten element do pliku.

Save(XmlWriter)

Serializuj ten element do elementu XmlWriter.

Save(Stream, SaveOptions)

Zwraca tę XElement wartość do określonego Streamelementu , opcjonalnie określając zachowanie formatowania.

Save(TextWriter, SaveOptions)

Serializuj ten element na TextWriterwartość , opcjonalnie wyłączając formatowanie.

Save(String, SaveOptions)

Serializuj ten element do pliku, opcjonalnie wyłączając formatowanie.

Save(Stream)

Zwraca tę wartość XElement do określonego Streamelementu .

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

stream
Stream

Strumień, do który ma być wyprowadzany XElement .

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. DisableFormatting Użyj opcji , aby zapisać niezidentyfikowany kod XML. Spowoduje to zapisanie wszystkich białych spacji dokładnie tak, jak pokazano w drzewie XML.

OmitDuplicateNamespaces Użyj opcji , jeśli chcesz usunąć zduplikowane deklaracje przestrzeni nazw.

Dotyczy

Save(TextWriter)

Serializuj ten element do elementu 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 XElement zostanie zapisany.

Przykłady

Poniższy przykład tworzy element XElement, zapisuje dokument w obiekcie StringWriter, a następnie drukuje ciąg w konsoli programu .

XElement root = XElement.Parse(@"<Root> <Child> Text </Child> </Root>");  
using (StringWriter sw = new StringWriter()) {  
    root.Save(sw);  
    Console.WriteLine(sw.ToString());  
}  
Dim root As XElement = <Root><Child> Text </Child></Root>  
Using sw = New StringWriter()  
    root.Save(sw)  
    Console.WriteLine(sw.ToString())  
End Using  

Ten przykład generuje następujące wyniki:

<?xml version="1.0" encoding="utf-16"?>  
<Root>  
  <Child> Text </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 odstępy nie zostaną zachowane.

Jeśli chcesz kontrolować białe odstępy, użyj przeciążenia Save , które umożliwia określenie SaveOptions 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ż

Dotyczy

Save(String)

Serializuj ten element do pliku.

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

Element String zawierający nazwę pliku.

Przykłady

Poniższy przykład tworzy plik XElement, zapisuje dokument w pliku, a następnie drukuje plik w konsoli programu .

XElement root = new XElement("Root",  
    new XElement("Child", "child content")  
);  
root.Save("Root.xml");  
string str = File.ReadAllText("Root.xml");  
Console.WriteLine(str);  
Dim root As XElement = _   
        <Root>  
            <Child>child content</Child>  
        </Root>  
root.Save("Root.xml")  
Dim Str As String = File.ReadAllText("Root.xml")  
Console.WriteLine(Str)  

Ten przykład generuje następujące wyniki:

<?xml version="1.0" encoding="utf-8"?>  
<Root>  
  <Child>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 białe węzły w drzewie XML nie zostaną zachowane.

Jeśli chcesz kontrolować białe odstępy, użyj przeciążenia Save , które umożliwia określenie SaveOptions 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ż

Dotyczy

Save(XmlWriter)

Serializuj ten element do elementu 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

writer
XmlWriter

Element XmlWriter , do którego XElement zostanie zapisany.

Przykłady

W poniższym przykładzie pokazano, jak zapisać element w XElement obiekcie XmlWriter.

StringBuilder sb = new StringBuilder();  
XmlWriterSettings xws = new XmlWriterSettings();  
xws.OmitXmlDeclaration = true;  
using (XmlWriter xw = XmlWriter.Create(sb, xws)) {  
    XElement root = new XElement("Root",  
        new XElement("Child", "child content")  
    );  
    root.Save(xw);  
}  
Console.WriteLine(sb.ToString());  
Dim sb As StringBuilder = New StringBuilder()  
Dim xws As XmlWriterSettings = New XmlWriterSettings()  
xws.OmitXmlDeclaration = True  
Using xw = XmlWriter.Create(sb, xws)  
    Dim root As XElement = <Root>  
                               <Child>child content</Child>  
                           </Root>  
    root.Save(xw)  
End Using  
Console.WriteLine(sb.ToString())  

Ten przykład generuje następujące wyniki:

<Root><Child>child content</Child></Root>  

Zobacz też

Dotyczy

Save(Stream, SaveOptions)

Zwraca tę XElement wartość do określonego Streamelementu , opcjonalnie określając zachowanie formatowania.

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

stream
Stream

Strumień, do który ma być wyprowadzany XElement .

options
SaveOptions

SaveOptions Obiekt, który określa 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 ten element na TextWriterwartość , 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 zachowuje białe znaki. Druga serializuje XElement element z formatowaniem. 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.

XElement root = XElement.Parse(@"<Root> <Child> Text </Child> </Root>");  

using (StringWriter sw = new StringWriter())  
{  
    root.Save(sw, SaveOptions.DisableFormatting);  
    Console.WriteLine(sw.ToString());  
}  

Console.WriteLine("=====");  

using (StringWriter sw = new StringWriter())  
{  
    root.Save(sw, SaveOptions.None);  
    Console.WriteLine(sw.ToString());  
}  
Dim root As XElement = <Root><Child> Text </Child></Root>  

Using sw = New StringWriter()  
    root.Save(sw, SaveOptions.DisableFormatting)  
    Console.WriteLine(sw.ToString())  
End Using  

Console.WriteLine("=====")  

Using sw = New StringWriter()  
    root.Save(sw, SaveOptions.None)  
    Console.WriteLine(sw.ToString())  
End Using  

Ten przykład generuje następujące wyniki:

<?xml version="1.0" encoding="utf-16"?><Root><Child> Text </Child></Root>  
=====  
<?xml version="1.0" encoding="utf-16"?>  
<Root>  
  <Child> Text </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 optionselementu . 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ż

Dotyczy

Save(String, SaveOptions)

Serializuj ten element 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

Element String 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 XElement element z formatowaniem.

string str;  
XElement root = XElement.Parse(@"<Root> <Child> Text </Child> </Root>");  

root.Save("Root.xml", SaveOptions.DisableFormatting);  
str = File.ReadAllText("Root.xml");  
Console.WriteLine(str);  

Console.WriteLine("=====");  

root.Save("Root.xml", SaveOptions.None);  
str = File.ReadAllText("Root.xml");  
Console.WriteLine(str);  
Dim str As String  
Dim root As XElement = <Root><Child> Text </Child></Root>  

root.Save("Root.xml", SaveOptions.DisableFormatting)  
str = File.ReadAllText("Root.xml")  
Console.WriteLine(str)  

Console.WriteLine("=====")  

root.Save("Root.xml", SaveOptions.None)  
str = File.ReadAllText("Root.xml")  
Console.WriteLine(str)  

Ten przykład generuje następujące wyniki:

<?xml version="1.0" encoding="utf-8"?><Root><Child> Text </Child></Root>  
=====  
<?xml version="1.0" encoding="utf-8"?>  
<Root>  
  <Child> Text </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 optionselementu . 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ż

Dotyczy