XElement.Save Метод

Определение

Сериализовать базовое дерево XML этого элемента. Результат может быть сохранен в файле (XmlTextWriter, TextWriter или XmlWriter). Если требуется, форматирование (отступ) можно отключить.

Перегрузки

Save(Stream)

Выводит этот документ XElement в указанный поток Stream.

Save(TextWriter)

Сериализация этого элемента в TextWriter.

Save(String)

Сериализовать этот элемент в файл.

Save(XmlWriter)

Сериализация этого элемента в XmlWriter.

Save(Stream, SaveOptions)

Выводит данный элемент XElement в указанный поток Stream, при необходимости задавая поведение форматирования.

Save(TextWriter, SaveOptions)

Сериализация этого элемента в TextWriter с отключением форматирования (при необходимости).

Save(String, SaveOptions)

Сериализовать этот элемент в файл (с возможным отключением форматирования).

Save(Stream)

Выводит этот документ XElement в указанный поток 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)

Параметры

stream
Stream

Поток для вывода данного элемента XElement.

Комментарии

Сериализованный XML-код будет отступом. Все незначительные пробелы будут удалены, и будет добавлен дополнительный пробел, чтобы XML-код был правильно отступен. Поведение этого метода заключается в том, что незначительные пробелы не будут сохранены.

Если вы хотите управлять пробелами, используйте перегрузку Save , которая принимает SaveOptions в качестве параметра. DisableFormatting Используйте этот параметр, чтобы сохранить неотправленный XML. Это приведет к тому, что модуль записи записывает все пробелы точно так же, как представлено в XML-дереве.

OmitDuplicateNamespaces Используйте этот параметр, если требуется удалить повторяющиеся объявления пространства имен.

Применяется к

Save(TextWriter)

Сериализация этого элемента в 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)

Параметры

textWriter
TextWriter

Объект TextWriter, в который будет записан элемент XElement.

Примеры

В следующем примере создается XElement, документ сохраняется в объекте StringWriter, а затем выводится строка в консоль.

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  

В этом примере выводятся следующие данные:

<?xml version="1.0" encoding="utf-16"?>  
<Root>  
  <Child> Text </Child>  
</Root>  

Комментарии

Сериализованный XML-код будет отступом. Все незначительные пробелы будут удалены, и будет добавлен дополнительный пробел, чтобы XML-код был правильно отступен. Поведение этого метода заключается в том, что пробелы не будут сохранены.

Если вы хотите управлять пробелами, используйте перегрузку Save , которая позволяет указать SaveOptions в качестве параметра. Дополнительные сведения см. в разделе "Сохранение пробела" при загрузке или анализе XML и сохранении пробелов при сериализации.

См. также раздел

Применяется к

Save(String)

Сериализовать этот элемент в файл.

public:
 void Save(System::String ^ fileName);
public void Save (string fileName);
member this.Save : string -> unit
Public Sub Save (fileName As String)

Параметры

fileName
String

Объект String, содержащий имя файла.

Примеры

В следующем примере создается XElement, документ сохраняется в файл, а затем выводится на консоль.

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)  

В этом примере выводятся следующие данные:

<?xml version="1.0" encoding="utf-8"?>  
<Root>  
  <Child>child content</Child>  
</Root>  

Комментарии

Сериализованный XML-код будет отступом. Все незначительные пробелы будут удалены, и будет добавлен дополнительный пробел, чтобы XML-код был правильно отступен. Поведение этого метода заключается в том, что незначительные узлы пробелов в XML-дереве не будут сохранены.

Если вы хотите управлять пробелами, используйте перегрузку Save , которая позволяет указать SaveOptions в качестве параметра. Дополнительные сведения см. в разделе "Сохранение пробела" при загрузке или анализе XML и сохранении пробелов при сериализации.

См. также раздел

Применяется к

Save(XmlWriter)

Сериализация этого элемента в 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)

Параметры

writer
XmlWriter

Объект XmlWriter, в который будет записан элемент XElement.

Примеры

В следующем примере демонстрируется, как сохранять XElement в 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())  

В этом примере выводятся следующие данные:

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

См. также раздел

Применяется к

Save(Stream, SaveOptions)

Выводит данный элемент XElement в указанный поток Stream, при необходимости задавая поведение форматирования.

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)

Параметры

stream
Stream

Поток для вывода данного элемента XElement.

options
SaveOptions

Объект SaveOptions, определяющий форматирование.

Комментарии

По умолчанию options задано значение None. Этот параметр удалит все лишние незначительные пробелы и добавит соответствующие незначительные пробелы, чтобы XML правильно отступил.

Если вы хотите сохранить неотправленный XML-код, укажите DisableFormatting флаг для options. Это приведет к тому, что модуль записи записывает все пробелы точно так же, как представлено в XML-дереве.

Используйте OmitDuplicateNamespaces параметр, если требуется удалить повторяющиеся объявления пространства имен.

Применяется к

Save(TextWriter, SaveOptions)

Сериализация этого элемента в TextWriter с отключением форматирования (при необходимости).

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)

Параметры

textWriter
TextWriter

TextWriter, в который выводится XML.

options
SaveOptions

Объект SaveOptions, указывающий поведение форматирования.

Примеры

В следующем примере показано два использования этого метода. Первое использование сохраняет пробелы. Второй сериализует форматирование XElement . Так как документ не содержит пробелов в нем, как сконструированный, сохранение пробелов выводит XML без отступа.

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  

В этом примере выводятся следующие данные:

<?xml version="1.0" encoding="utf-16"?><Root><Child> Text </Child></Root>  
=====  
<?xml version="1.0" encoding="utf-16"?>  
<Root>  
  <Child> Text </Child>  
</Root>  

Комментарии

Если вы хотите сохранить неотправленный XML-код, укажите DisableFormatting флаг для options. Это приведет к тому, что модуль записи записывает все пробелы точно так же, как представлено в XML-дереве.

Если вы хотите сохранить отступ XML, не указывайте DisableFormatting флаг для options. Это приведет к удалению всех лишних незначительных пробелов и добавит соответствующие незначительные пробелы, чтобы XML правильно отступил. Это поведение по умолчанию и поведение перегрузок Save методов, которые не принимают options в качестве параметра.

Дополнительные сведения см. в разделе "Сохранение пробела" при загрузке или анализе XML и сохранении пробелов при сериализации.

См. также раздел

Применяется к

Save(String, SaveOptions)

Сериализовать этот элемент в файл (с возможным отключением форматирования).

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)

Параметры

fileName
String

Объект String, содержащий имя файла.

options
SaveOptions

Объект SaveOptions, указывающий поведение форматирования.

Примеры

В следующем примере показано два использования этого метода. Первое использование сохраняет пробелы. Второй сериализует форматирование XElement .

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)  

В этом примере выводятся следующие данные:

<?xml version="1.0" encoding="utf-8"?><Root><Child> Text </Child></Root>  
=====  
<?xml version="1.0" encoding="utf-8"?>  
<Root>  
  <Child> Text </Child>  
</Root>  

Комментарии

Если вы хотите сохранить неотправленный XML-код, укажите DisableFormatting флаг для options. Это приведет к тому, что модуль записи записывает все пробелы точно так же, как представлено в XML-дереве.

Если вы хотите сохранить отступ XML, не указывайте DisableFormatting флаг для options. Это приведет к удалению всех лишних незначительных пробелов и добавит соответствующие незначительные пробелы, чтобы XML правильно отступил. Это поведение по умолчанию и поведение перегрузок Save методов, которые не принимают options в качестве параметра.

Дополнительные сведения см. в разделе "Сохранение пробела" при загрузке или анализе XML и сохранении пробелов при сериализации.

См. также раздел

Применяется к