XStreamingElement.Save 方法

定義

序列化這個資料流項目。 輸出可以儲存至 XmlTextWriterTextWriterXmlWriter。 您也可以選擇停用格式化 (縮排)。

多載

Save(Stream)

將這個 XStreamingElement 輸出到指定的 Stream

Save(TextWriter)

將這個資料流項目序列化成 TextWriter

Save(String)

將這個資料流項目序列化成檔案。

Save(XmlWriter)

將這個資料流項目序列化成 XmlWriter

Save(Stream, SaveOptions)

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

Save(TextWriter, SaveOptions)

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

Save(String, SaveOptions)

將這個資料流項目序列化成檔案 (可選擇是否停用格式設定)。

Save(Stream)

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

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

備註

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

向其中寫入 TextWriterXStreamingElement

範例

下列範例會建立來源 XML 樹狀結構,然後使用來源 XML 樹狀結構上的查詢具現化 XStreamingElement 。 然後,它會將串流專案 StringWriter 寫入 。

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el >= 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

StringBuilder sb = new StringBuilder();  
dstTree.Save(new StringWriter(sb));  
Console.WriteLine(sb.ToString());  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value >= 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

Dim sb As StringBuilder = New StringBuilder()  
dstTree.Save(New StringWriter(sb))  
Console.WriteLine(sb.ToString())  

這個範例會產生下列輸出:

<?xml version="1.0" encoding="utf-16"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
  <DifferentChild>4</DifferentChild>  
  <DifferentChild>5</DifferentChild>  
</NewRoot>  

備註

序列化的 XML 將會縮排。 將會移除所有不重要的空白字元,並新增額外的空白字元,以便正確地縮排 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

範例

下列範例會建立串流 XML 樹狀結構。 然後,它會將串流 XML 樹狀結構序列化為檔案。

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el >= 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

dstTree.Save("Test.xml");  
Console.WriteLine(File.ReadAllText("Test.xml"));  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value >= 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

dstTree.Save("Test.xml")  
Console.WriteLine(File.ReadAllText("Test.xml"))  

這個範例會產生下列輸出:

<?xml version="1.0" encoding="utf-8"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
  <DifferentChild>4</DifferentChild>  
  <DifferentChild>5</DifferentChild>  
</NewRoot>  

備註

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

範例

下列範例會 XStreamingElement 建立 ,並將其寫入至 XmlWriter

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

StringBuilder sb = new StringBuilder();  
XmlWriterSettings xws = new XmlWriterSettings();  
xws.OmitXmlDeclaration = true;  
using (XmlWriter xw = XmlWriter.Create(sb, xws))  
{  
    XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                            from el in srcTree.Elements()  
                            where (int)el == 5  
                            select new XElement("DifferentChild", (int)el)  
                        );  

    dstTree.Save(xw);  
}  
Console.WriteLine(sb.ToString());  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim sb As StringBuilder = New StringBuilder()  
Dim xws As XmlWriterSettings = New XmlWriterSettings()  
xws.OmitXmlDeclaration = True  
Using xw As XmlWriter = XmlWriter.Create(sb, xws)  
    Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                            From el In srcTree.Elements() _  
                            Where el.Value = 5 _  
                            Select <DifferentChild><%= el.Value %></DifferentChild> _  
                        )  
    dstTree.Save(xw)  
End Using  
Console.WriteLine(sb.ToString())  

這個範例會產生下列輸出:

<NewRoot><DifferentChild>5</DifferentChild></NewRoot>  

另請參閱

適用於

Save(Stream, SaveOptions)

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

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

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

範例

下列範例顯示此方法的兩個用法。 第一個用法會保留空白字元。 第二個會使用格式序列化 XStreamingElement

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el == 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

StringBuilder sb = new StringBuilder();  
dstTree.Save(new StringWriter(sb), SaveOptions.DisableFormatting);  
Console.WriteLine(sb.ToString());  
Console.WriteLine("------");  
sb = new StringBuilder();  
dstTree.Save(new StringWriter(sb), SaveOptions.None);  
Console.WriteLine(sb.ToString());  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value = 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

Dim sb As StringBuilder = New StringBuilder()  
dstTree.Save(New StringWriter(sb), SaveOptions.DisableFormatting)  
Console.WriteLine(sb.ToString())  
Console.WriteLine("------")  
sb = New StringBuilder()  
dstTree.Save(New StringWriter(sb), SaveOptions.None)  
Console.WriteLine(sb.ToString())  

這個範例會產生下列輸出:

<?xml version="1.0" encoding="utf-16"?><NewRoot><DifferentChild>3</DifferentChild></NewRoot>  
------  
<?xml version="1.0" encoding="utf-16"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
</NewRoot>  

備註

如果您想要儲存未輸入的 XML,請 DisableFormatting 指定 的 options 旗標。 這會導致寫入器寫入所有空白字元,完全如 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 物件。

範例

下列範例顯示此方法的兩個用法。 第一個用法會保留空白字元。 第二個會使用格式序列化 XStreamingElement

XElement srcTree = new XElement("Root",  
                       new XElement("Child", 1),  
                       new XElement("Child", 2),  
                       new XElement("Child", 3),  
                       new XElement("Child", 4),  
                       new XElement("Child", 5)  
                   );  

XStreamingElement dstTree = new XStreamingElement("NewRoot",  
                        from el in srcTree.Elements()  
                        where (int)el == 3  
                        select new XElement("DifferentChild", (int)el)  
                    );  

dstTree.Save("Test1.xml", SaveOptions.DisableFormatting);  
dstTree.Save("Test2.xml", SaveOptions.None);  
Console.WriteLine(File.ReadAllText("Test1.xml"));  
Console.WriteLine("------");  
Console.WriteLine(File.ReadAllText("Test2.xml"));  
Dim srcTree As XElement = _  
    <Root>  
        <Child>1</Child>  
        <Child>2</Child>  
        <Child>3</Child>  
        <Child>4</Child>  
        <Child>5</Child>  
    </Root>  

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _  
                        From el In srcTree.Elements() _  
                        Where el.Value = 3 _  
                        Select <DifferentChild><%= el.Value %></DifferentChild> _  
                    )  

dstTree.Save("Test1.xml", SaveOptions.DisableFormatting)  
dstTree.Save("Test2.xml", SaveOptions.None)  
Console.WriteLine(File.ReadAllText("Test1.xml"))  
Console.WriteLine("------")  
Console.WriteLine(File.ReadAllText("Test2.xml"))  

這個範例會產生下列輸出:

<?xml version="1.0" encoding="utf-8"?><NewRoot><DifferentChild>3</DifferentChild></NewRoot>  
------  
<?xml version="1.0" encoding="utf-8"?>  
<NewRoot>  
  <DifferentChild>3</DifferentChild>  
</NewRoot>  

備註

如果您想要儲存未輸入的 XML,請 DisableFormatting 指定 的 options 旗標。 這會導致寫入器寫入所有空白字元,完全如 XML 樹狀結構中所表示。

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

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

另請參閱

適用於