XStreamingElement.Save Метод

Определение

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

Перегрузки

Save(Stream)

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

Save(TextWriter)

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

Save(String)

Сериализует данный потоковый элемент в файл.

Save(XmlWriter)

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

Save(Stream, SaveOptions)

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

Save(TextWriter, SaveOptions)

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

Save(String, SaveOptions)

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

Save(Stream)

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

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

Примеры

В следующем примере создается исходное XML-дерево, а затем создается экземпляр XStreamingElement запроса в исходном XML-дереве. Затем он записывает элемент потоковой передачи в .StringWriter

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el >= 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

StringBuilder sb = new StringBuilder();  
dstTree.Save(new StringWriter(sb));  
Console.WriteLine(sb.ToString());  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value >= 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

Dim sb As StringBuilder = New StringBuilder()  
dstTree.Save(New StringWriter(sb))  
Console.WriteLine(sb.ToString())  

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

<?xml version="1.0" encoding="utf-16"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
  <DifferentChild>4</DifferentChild>  
  <DifferentChild>5</DifferentChild>  
</NewRoot>  

Комментарии

Сериализованный XML-код будет отступом. Все незначительные пробелы будут удалены, и будет добавлен дополнительный пробел, чтобы 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, содержащий имя файла.

Примеры

В следующем примере создается xml-дерево потоковой передачи. Затем он сериализует xml-дерево потоковой передачи в файл.

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el >= 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

dstTree.Save("Test.xml");  
Console.WriteLine(File.ReadAllText("Test.xml"));  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value >= 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

dstTree.Save("Test.xml")  
Console.WriteLine(File.ReadAllText("Test.xml"))  

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

<?xml version="1.0" encoding="utf-8"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
  <DifferentChild>4</DifferentChild>  
  <DifferentChild>5</DifferentChild>  
</NewRoot>  

Комментарии

Сериализованный 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.

Примеры

В следующем примере создается XStreamingElement и записывается в объект XmlWriter.

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

StringBuilder sb = new StringBuilder();  
XmlWriterSettings xws = new XmlWriterSettings();  
xws.OmitXmlDeclaration = true;  
using (XmlWriter xw = XmlWriter.Create(sb, xws))  
{  
    XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                            from el in srcTree.Elements()  
                            where (int)el == 5  
                            select new XElement("DifferentChild", (int)el)  
                        );  

    dstTree.Save(xw);  
}  
Console.WriteLine(sb.ToString());  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim sb As StringBuilder = New StringBuilder()  
Dim xws As XmlWriterSettings = New XmlWriterSettings()  
xws.OmitXmlDeclaration = True  
Using xw As XmlWriter = XmlWriter.Create(sb, xws)  
    Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                            From el In srcTree.Elements() _  
                            Where el.Value = 5 _  
                            Select <DifferentChild><%= el.Value %></DifferentChild> _  
                        )  
    dstTree.Save(xw)  
End Using  
Console.WriteLine(sb.ToString())  

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

<NewRoot><DifferentChild>5</DifferentChild></NewRoot>  

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

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

Save(Stream, SaveOptions)

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

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

Примеры

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

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el == 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

StringBuilder sb = new StringBuilder();  
dstTree.Save(new StringWriter(sb), SaveOptions.DisableFormatting);  
Console.WriteLine(sb.ToString());  
Console.WriteLine("------");  
sb = new StringBuilder();  
dstTree.Save(new StringWriter(sb), SaveOptions.None);  
Console.WriteLine(sb.ToString());  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value = 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

Dim sb As StringBuilder = New StringBuilder()  
dstTree.Save(New StringWriter(sb), SaveOptions.DisableFormatting)  
Console.WriteLine(sb.ToString())  
Console.WriteLine("------")  
sb = New StringBuilder()  
dstTree.Save(New StringWriter(sb), SaveOptions.None)  
Console.WriteLine(sb.ToString())  

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

<?xml version="1.0" encoding="utf-16"?><NewRoot><DifferentChild>3</DifferentChild></NewRoot>  
------  
<?xml version="1.0" encoding="utf-16"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
</NewRoot>  

Комментарии

Если вы хотите сохранить неундентный 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, определяющий форматирование.

Примеры

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

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el == 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

dstTree.Save("Test1.xml", SaveOptions.DisableFormatting);  
dstTree.Save("Test2.xml", SaveOptions.None);  
Console.WriteLine(File.ReadAllText("Test1.xml"));  
Console.WriteLine("------");  
Console.WriteLine(File.ReadAllText("Test2.xml"));  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value = 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

dstTree.Save("Test1.xml", SaveOptions.DisableFormatting)  
dstTree.Save("Test2.xml", SaveOptions.None)  
Console.WriteLine(File.ReadAllText("Test1.xml"))  
Console.WriteLine("------")  
Console.WriteLine(File.ReadAllText("Test2.xml"))  

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

<?xml version="1.0" encoding="utf-8"?><NewRoot><DifferentChild>3</DifferentChild></NewRoot>  
------  
<?xml version="1.0" encoding="utf-8"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
</NewRoot>  

Комментарии

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

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

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

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

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