Бөлісу құралы:


XDocument.Save Метод

Определение

Сериализует данный документ XDocument в файл, TextWriter или XmlWriter.

Перегрузки

Save(XmlWriter)

Сериализует данный документ XDocument в XmlWriter.

Save(Stream)

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

Save(TextWriter)

Сериализует данный документ XDocument в TextWriter.

Save(String)

Необходимо сериализовать этот объект XDocument в файл, перезаписывая существующий файл, если имеется.

Save(Stream, SaveOptions)

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

Save(TextWriter, SaveOptions)

Сериализует данный документ XDocument в TextWriter, при необходимости выключая форматирование.

Save(String, SaveOptions)

Сериализует данный XDocument в файл, при необходимости выключая форматирование.

Save(XmlWriter)

Сериализует данный документ XDocument в 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, в который будет записан элемент XDocument.

Примеры

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

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

<Child>  
  <GrandChild>some content</GrandChild>  
</Child>  

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

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

Save(Stream)

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

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

Комментарии

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

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

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

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

Save(TextWriter)

Сериализует данный документ XDocument в 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, в который будет записан элемент XDocument.

Примеры

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

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())  

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

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

Комментарии

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

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

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

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

Save(String)

Необходимо сериализовать этот объект XDocument в файл, перезаписывая существующий файл, если имеется.

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

Параметры

fileName
String

Строка, которая содержит имя файла.

Примеры

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

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"))  

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

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

Комментарии

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

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

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

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

Save(Stream, SaveOptions)

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

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

options
SaveOptions

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

Комментарии

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

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

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

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

Save(TextWriter, SaveOptions)

Сериализует данный документ XDocument в 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, указывающий поведение форматирования.

Примеры

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

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  

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

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

Комментарии

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

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

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

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

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

Save(String, SaveOptions)

Сериализует данный XDocument в файл, при необходимости выключая форматирование.

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

Строка, которая содержит имя файла.

options
SaveOptions

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

Примеры

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

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"))  

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

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

Комментарии

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

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

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

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

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