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