XStreamingElement.Save 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將這個串流元素序列化。 輸出可以儲存為檔案、一個 XmlTextWriter、一個 TextWriter、或一個 XmlWriter。 可選擇性地關閉格式化(縮排)。
多載
| 名稱 | Description |
|---|---|
| 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)
參數
備註
序列化的 XML 會進行縮排。 所有無關緊要的留白都會被移除,並會新增留白,讓 XML 能夠正確縮排。 此方法的特性是不重要的空白區域不會被保留。
如果你想控制空白,可以用這個 take 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寫給你XStreamingElement。
範例
以下範例建立原始 XML 樹,然後實例化並 XStreamingElement 使用對原始 XML 樹的查詢。 接著它將串流元素寫入 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 樹中不重要的空白節點不會被保留。
如果你想控制空白,可以用該 take 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)
參數
範例
以下範例建立串流 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 樹中不重要的空白節點不會被保留。
如果你想控制空白,可以用該 take 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)
參數
範例
以下範例將建立 並 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)
參數
- 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
輸出 TextWriter XML 的 to。
- options
- SaveOptions
SaveOptions一個指定格式行為的 A。
範例
以下範例展示了此方法的兩種應用。 第一種使用方式保留了留白空間。 第二個是用格式化序列化的。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,請指定 DisableFormattingoptions。 這會導致寫入者寫入所有空白區域,完全符合 XML 樹中所表示的樣貌。
如果你想儲存縮排 XML,請不要指定 DisableFormatting 的標誌。options 這樣可以移除所有多餘的無關緊要留白,並加入適當的無關緊要留白,使 XML 能夠正確縮排。 這是預設行為,也是不將 作為Save參數的方法的超載options行為。
欲了解更多資訊,請參閱 載入或解析 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 指定格式行為的物件。
範例
以下範例展示了此方法的兩種應用。 第一種使用方式保留了留白空間。 第二個是用格式化序列化的。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,請指定 DisableFormattingoptions。 這會導致寫入者寫入所有空白區域,完全符合 XML 樹中所表示的樣貌。
如果你想儲存縮排 XML,請不要指定 DisableFormatting 的標誌。options 這樣可以移除所有多餘的無關緊要留白,並加入適當的無關緊要留白,使 XML 能夠正確縮排。 這是預設行為,也是不將 作為Save參數的方法的超載options行為。
欲了解更多資訊,請參閱 載入或解析 XML 時保留空白 ,以及序列 化時保留空白。