XDocument.Save 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將此 XDocument 串行化為檔案、TextWriter或 XmlWriter。
多載
Save(XmlWriter) | |
Save(Stream) | |
Save(TextWriter) |
將此 XDocument 串行化為 TextWriter。 |
Save(String) |
將此 XDocument 串行化為檔案,如果檔案存在,則會覆寫現有的檔案。 |
Save(Stream, SaveOptions) | |
Save(TextWriter, SaveOptions) |
將此 XDocument 串行化為 TextWriter,選擇性地停用格式設定。 |
Save(String, SaveOptions) |
將此 XDocument 串行化為檔案,選擇性地停用格式設定。 |
Save(XmlWriter)
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
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)
參數
範例
下列範例示範如何將 XDocument 儲存至 XmlWriter。
StringBuilder sb = new StringBuilder();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Indent = true;
using (XmlWriter xw = XmlWriter.Create(sb, xws)) {
XDocument doc = new XDocument(
new XElement("Child",
new XElement("GrandChild", "some content")
)
);
doc.Save(xw);
}
Console.WriteLine(sb.ToString());
Dim sb As StringBuilder = New StringBuilder()
Dim xws As XmlWriterSettings = New XmlWriterSettings()
xws.OmitXmlDeclaration = True
xws.Indent = True
Using xw = XmlWriter.Create(sb, xws)
Dim doc As XDocument = New XDocument(<Child><GrandChild>some content</GrandChild></Child>)
doc.Save(xw)
End Using
Console.WriteLine(sb.ToString())
此範例會產生下列輸出:
<Child>
<GrandChild>some content</GrandChild>
</Child>
另請參閱
適用於
Save(Stream)
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
- 來源:
- XDocument.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)
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
將此 XDocument 串行化為 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
將寫入 XDocument 的 TextWriter。
範例
下列範例會建立 XDocument,將檔儲存至 StringWriter,然後將字串列印至控制台。
StringBuilder sb = new StringBuilder();
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
TextWriter tr = new StringWriter(sb);
doc.Save(tr);
Console.WriteLine(sb.ToString());
Dim sb As StringBuilder = New StringBuilder()
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
Dim tr As TextWriter = New StringWriter(sb)
doc.Save(tr)
Console.WriteLine(sb.ToString())
此範例會產生下列輸出:
<?xml version="1.0" encoding="utf-16"?>
<Root>
<Child>content</Child>
</Root>
備註
串行化的 XML 將會縮排。 將會移除所有微不足道的空格符,並新增額外的空格符,以便適當縮排 XML。 此方法的行為是不會保留微不足道的空格符。
如果您想要控制空格符,請使用採用 SaveOptions 做為參數的 Save 多載。 如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。
另請參閱
適用於
Save(String)
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
將此 XDocument 串行化為檔案,如果檔案存在,則會覆寫現有的檔案。
public:
void Save(System::String ^ fileName);
public void Save (string fileName);
member this.Save : string -> unit
Public Sub Save (fileName As String)
參數
- fileName
- String
包含檔名的字串。
範例
下列範例會建立 XDocument,將檔儲存至檔案,然後將檔案列印至主控台。
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
doc.Save("Root.xml");
Console.WriteLine(File.ReadAllText("Root.xml"));
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
doc.Save("Root.xml")
Console.WriteLine(File.ReadAllText("Root.xml"))
此範例會產生下列輸出:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Child>content</Child>
</Root>
備註
串行化的 XML 將會縮排。 將會移除所有微不足道的空格符,並新增額外的空格符,以便適當縮排 XML。 此方法的行為是不會保留微不足道的空格符。
如果您想要控制空格符,請使用採用 SaveOptions 做為參數的 Save 多載。 如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。
另請參閱
適用於
Save(Stream, SaveOptions)
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
- 來源:
- XDocument.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)
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
將此 XDocument 串行化為 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。
範例
下列範例顯示此方法的兩個用法。 第一個用法會以格式串行化 XDocument。 第二個會保留空格符。 由於檔中沒有建構的空格符,因此保留空格符會輸出 XML,而不會有任何縮排。
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
StringBuilder sb1 = new StringBuilder();
using (StringWriter sr1 = new StringWriter(sb1)) {
doc.Save(sr1, SaveOptions.None);
Console.WriteLine(sb1.ToString());
}
StringBuilder sb2 = new StringBuilder();
using (StringWriter sr2 = new StringWriter(sb2)) {
doc.Save(sr2, SaveOptions.DisableFormatting);
Console.WriteLine(sb2.ToString());
}
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
Dim sb1 As StringBuilder = New StringBuilder()
Using sr1 = New StringWriter(sb1)
doc.Save(sr1, SaveOptions.None)
Console.WriteLine(sb1.ToString())
End Using
Dim sb2 As StringBuilder = New StringBuilder()
Using sr2 = New StringWriter(sb2)
doc.Save(sr2, SaveOptions.DisableFormatting)
Console.WriteLine(sb2.ToString())
End Using
此範例會產生下列輸出:
<?xml version="1.0" encoding="utf-16"?>
<Root>
<Child>content</Child>
</Root>
<?xml version="1.0" encoding="utf-16"?><Root><Child>content</Child></Root>
備註
如果您想要儲存未輸入的 XML,請為 options
指定 DisableFormatting 旗標。 這會導致寫入器寫入所有空格符,完全如 XML 樹狀結構中所表示。
如果您想要儲存縮排 XML,請勿為 options
指定 DisableFormatting 旗標。 這會移除所有無關的微不足道空格符,並新增適當的微不足道空格符,讓 XML 正確縮排。 這是預設行為,以及不接受 options
做為參數之 Save 方法的多載行為。
如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。
另請參閱
適用於
Save(String, SaveOptions)
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
- 來源:
- XDocument.cs
將此 XDocument 串行化為檔案,選擇性地停用格式設定。
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
包含檔名的字串。
- options
- SaveOptions
指定格式化行為的 SaveOptions。
範例
下列範例顯示此方法的兩個用法。 第一個用法會保留空格符。 第二個會使用縮排串行化 XDocument。
XDocument doc = new XDocument(
new XElement("Root",
new XElement("Child", "content")
)
);
doc.Save("Root1.xml", SaveOptions.DisableFormatting);
Console.WriteLine(File.ReadAllText("Root1.xml"));
doc.Save("Root2.xml", SaveOptions.None);
Console.WriteLine(File.ReadAllText("Root2.xml"));
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<Root><Child>content</Child></Root>
doc.Save("Root1.xml", SaveOptions.DisableFormatting)
Console.WriteLine(File.ReadAllText("Root1.xml"))
doc.Save("Root2.xml", SaveOptions.None)
Console.WriteLine(File.ReadAllText("Root2.xml"))
此範例會產生下列輸出:
<?xml version="1.0" encoding="utf-8"?><Root><Child>content</Child></Root>
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Child>content</Child>
</Root>
備註
如果您想要儲存未輸入的 XML,請為 options
指定 DisableFormatting 旗標。 這會導致寫入器寫入所有空格符,完全如 XML 樹狀結構中所表示。
如果您想要儲存縮排 XML,請勿為 options
指定 DisableFormatting 旗標。 這會移除所有無關的微不足道空格符,並新增適當的微不足道空格符,讓 XML 正確縮排。 這是預設行為,以及不接受 options
做為參數之 Save 方法的多載行為。
如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。