XElement.Save 方法 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
序列化此元素的基础 XML 树。 可以将输出保存到文件、XmlTextWriter、TextWriter 或 XmlWriter。 还可以禁用格式设置(缩进)。
重载
| Save(Stream) | |
| Save(TextWriter) | 将此元素序列化为 TextWriter。 | 
| Save(String) | 将此元素序列化为文件。 | 
| Save(XmlWriter) | 将此元素序列化为 XmlWriter。 | 
| Save(Stream, SaveOptions) | |
| 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 -> unitPublic Sub Save (stream As Stream)参数
注解
序列化的 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 -> unitPublic 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 -> unitPublic 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 -> unitPublic 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 -> unitPublic 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 -> unitPublic Sub Save (textWriter As TextWriter, options As SaveOptions)参数
- textWriter
- TextWriter
要将 XML 输出到的 TextWriter。
- 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,请不要为该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 -> unitPublic 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,请不要为该options标志指定DisableFormatting标志。 这将删除所有无关紧要的空白,并添加适当的微不足道的空白,以便 XML 正确缩进。 这是默认行为,也是不options用作参数的方法的Save重载的行为。
有关详细信息,请参阅 在加载或分析 XML 时保留空白, 并在 序列化时保留空白。