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)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
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)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
將這個項目串列化為 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
將寫入 XElement 的 TextWriter。
範例
下列範例會建立 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。 此方法的行為是不會保留空格符。
如果您想要控制空格符,請使用可讓您將 SaveOptions 指定為參數的 Save 多載。 如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。
另請參閱
適用於
Save(String)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
將這個專案串行化為檔案。
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 樹狀結構中微不足道的空格符節點。
如果您想要控制空格符,請使用可讓您將 SaveOptions 指定為參數的 Save 多載。 如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。
另請參閱
適用於
Save(XmlWriter)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
將這個項目串列化為 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)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
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,請為 options指定 DisableFormatting 旗標。 這會導致寫入器寫入所有空格符,完全如 XML 樹狀結構中所表示。
如果您想要移除重複的命名空間宣告,請使用 OmitDuplicateNamespaces 選項。
適用於
Save(TextWriter, SaveOptions)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
將這個專案串行化為 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,請為 options指定 DisableFormatting 旗標。 這會導致寫入器寫入所有空格符,完全如 XML 樹狀結構中所表示。
如果您想要儲存縮排 XML,請勿為 options指定 DisableFormatting 旗標。 這會移除所有無關的微不足道空格符,並新增適當的微不足道空格符,讓 XML 正確縮排。 這是預設行為,以及不接受 options 做為參數之 Save 方法的多載行為。
如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。
另請參閱
適用於
Save(String, SaveOptions)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
將這個專案串行化為檔案,選擇性地停用格式設定。
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,請為 options指定 DisableFormatting 旗標。 這會導致寫入器寫入所有空格符,完全如 XML 樹狀結構中所表示。
如果您想要儲存縮排 XML,請勿為 options指定 DisableFormatting 旗標。 這會移除所有無關的微不足道空格符,並新增適當的微不足道空格符,讓 XML 正確縮排。 這是預設行為,以及不接受 options 做為參數之 Save 方法的多載行為。
如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。