XElement.Save Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сериализовать базовое дерево XML этого элемента. Результат может быть сохранен в файле (XmlTextWriter, TextWriter или XmlWriter). Если требуется, форматирование (отступ) можно отключить.
Перегрузки
Save(Stream) | |
Save(TextWriter) |
Сериализация этого элемента в TextWriter. |
Save(String) |
Сериализовать этот элемент в файл. |
Save(XmlWriter) |
Сериализация этого элемента в XmlWriter. |
Save(Stream, SaveOptions) |
Выводит данный элемент XElement в указанный поток Stream, при необходимости задавая поведение форматирования. |
Save(TextWriter, SaveOptions) |
Сериализация этого элемента в TextWriter с отключением форматирования (при необходимости). |
Save(String, SaveOptions) |
Сериализовать этот элемент в файл (с возможным отключением форматирования). |
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)
Параметры
Комментарии
Сериализованный 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)
Параметры
Примеры
В следующем примере создается 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)
Параметры
Примеры
В следующем примере демонстрируется, как сохранять 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)
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)
Параметры
- 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)
Параметры
- 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 и сохранении пробелов при сериализации.