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。 這個方法的行為是不會保留不重要的空白字元。
如果您想要控制空白字元,請使用 採用 做為參數的 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 的 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,請勿指定 DisableFormatting 的 options
旗標。 這會移除所有無關的不重要空白字元,並新增適當的不重要空白字元,讓 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,請勿指定 DisableFormatting 的 options
旗標。 這會移除所有無關的不重要空白字元,並新增適當的不重要空白字元,讓 XML 正確縮排。 這是預設行為,以及不 options
做為參數之方法的多載 Save 行為。
如需詳細資訊,請參閱 在載入或剖析 XML 時保留空白字元 ,以及在 序列化時保留空白字元。