XElement.Save 方法

定義

序列化這個元素的基礎 XML 樹狀結構。 輸出可以儲存至 XmlTextWriterTextWriterXmlWriter。 您也可以選擇停用格式化 (縮排)。

多載

Save(Stream)

將這個 XElement 輸出到指定的 Stream

Save(TextWriter)

將這個項目序列化成 TextWriter

Save(String)

將這個元素序列化成檔案。

Save(XmlWriter)

將這個項目序列化成 XmlWriter

Save(Stream, SaveOptions)

將這個 XElement 輸出至指定的 Stream,選擇性地指定格式化行為。

Save(TextWriter, SaveOptions)

將這個項目序列化成 TextWriter (可選擇是否停用格式設定)。

Save(String, SaveOptions)

將這個元素序列化成檔案 (可選擇是否停用格式設定)。

Save(Stream)

將這個 XElement 輸出到指定的 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

這個 XElement 輸出的目的資料流。

備註

序列化的 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

向其中寫入 TextWriterXElement

範例

下列範例會 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)

參數

fileName
String

包含檔案名稱的 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)

參數

writer
XmlWriter

向其中寫入 XmlWriterXElement

範例

下列範例顯示如何將 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 輸出至指定的 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

這個 XElement 輸出的目的資料流。

options
SaveOptions

指定格式化行為的 SaveOptions 物件。

備註

預設會將 options 設定為 None 。 此選項會移除所有無關的空白字元,並新增適當的無意義空白字元,以便正確縮排 XML。

如果您想要儲存未輸入的 XML,請指定 DisableFormattingoptions 旗標。 這會導致寫入器寫入所有空格,與 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,請指定 DisableFormattingoptions 旗標。 這會導致寫入器寫入所有空白字元,與 XML 樹狀結構中所表示完全相同。

如果您想要儲存縮排的 XML,請勿指定 DisableFormattingoptions 旗標。 這會移除所有無關的不重要空白字元,並新增適當的不重要空白字元,讓 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

範例

下列範例顯示這個方法的兩個用法。 第一個用法會保留空白字元。 第二個序列化 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,請指定 DisableFormattingoptions 旗標。 這會導致寫入器寫入所有空白字元,與 XML 樹狀結構中所表示完全相同。

如果您想要儲存縮排的 XML,請勿指定 DisableFormattingoptions 旗標。 這會移除所有無關的不重要空白字元,並新增適當的不重要空白字元,讓 XML 正確縮排。 這是預設行為,以及不 options 做為參數之方法的多載 Save 行為。

如需詳細資訊,請參閱 在載入或剖析 XML 時保留空白字元 ,以及在 序列化時保留空白字元

另請參閱

適用於