XDocument.Save Метод

Определение

Сериализует его XDocument в файл, a TextWriterили an 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.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs

Сериализуйте его 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.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs

Выводит это 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.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs

Сериализуйте это 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.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs

Сериализируйте его 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.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs

Выводит это 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.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs

Сериализуйте его 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.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs
Исходный код:
XDocument.cs

Сериализуйте его 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 " и сохранении пробелов во время сериализации.

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

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