XStreamingElement.Save 方法

定义

序列化此流元素。 可以将输出保存到文件、XmlTextWriterTextWriterXmlWriter。 还可以禁用格式设置(缩进)。

重载

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。 此方法的行为是,不会保留无关紧要的空格。

如果要控制空白,请使用该SaveOptions空格的Save重载作为参数。 使用选项 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

将向其中写入 TextWriterXStreamingElement

示例

以下示例创建源 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 树中无关紧要的空白节点。

如果要控制空白,请使用其中SaveOptions一个作为参数的重载Save。 有关详细信息,请参阅 在加载或分析 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 树中无关紧要的空白节点。

如果要控制空白,请使用其中SaveOptions一个作为参数的重载Save。 有关详细信息,请参阅 在加载或分析 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

将向其中写入 XmlWriterXElement

示例

以下示例创建一个 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

要将 XML 输出到的 TextWriter

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,请不要为该options标志指定DisableFormatting标志。 这将删除所有无关紧要的空白,并添加适当的微不足道的空白,以便 XML 正确缩进。 这是默认行为,也是不options用作参数的方法的Save重载的行为。

有关详细信息,请参阅 在加载或分析 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,请不要为该options标志指定DisableFormatting标志。 这将删除所有无关紧要的空白,并添加适当的微不足道的空白,以便 XML 正确缩进。 这是默认行为,也是不options用作参数的方法的Save重载的行为。

有关详细信息,请参阅 在加载或分析 XML 时保留空白, 并在 序列化时保留空白

另请参阅

适用于