語言

XDocument.Save 方法

定義

將此 XDocument 序列化為檔案、a TextWriter、 或 XmlWriter。

多載

名稱 Description
Save(XmlWriter)

序列化為 XDocumentXmlWriter.

Save(Stream)

XDocument輸出為指定的 Stream。

Save(TextWriter)

將此 XDocument 序列化為 TextWriter.

Save(String)

將此 XDocument 序列化成檔案,若已有檔案存在,則覆蓋該檔案。

Save(Stream, SaveOptions)

輸出 XDocument 為指定的 Stream格式行為,可選擇性地指定格式化。

Save(TextWriter, SaveOptions)

將其序列化 XDocument 為 TextWriter可選擇性停用格式。

Save(String, SaveOptions)

將其序列化 XDocument 成檔案,並可選擇關閉格式設定。

Save(XmlWriter)

來源:
XDocument.cs
來源:
XDocument.cs
來源:
XDocument.cs
來源:
XDocument.cs
來源:
XDocument.cs

序列化為 XDocumentXmlWriter.

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

遺囑會XmlWriter寫給你XDocument。

範例

以下範例說明如何將 儲存 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
來源:
XDocument.cs
來源:
XDocument.cs

XDocument輸出為指定的 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 能夠正確縮排。 此方法的特性是不重要的空白區域不會被保留。

如果你想控制空白,可以用這個 take Save 的SaveOptions超載作為參數。 請使用 DisableFormatting 儲存未縮排 XML 的選項。 這會導致寫入者將所有空白完全照 XML 樹中表示的方式寫入。

如果你想移除重複的命名空間宣告,請使用 OmitDuplicateNamespaces 選項。

適用於

Save(TextWriter)

來源:
XDocument.cs
來源:
XDocument.cs
來源:
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

遺囑會TextWriter寫給你XDocument。

範例

以下範例會建立一個 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 能夠正確縮排。 此方法的特性是不重要的空白區域不會被保留。

如果你想控制空白,可以用這個 take Save 的SaveOptions超載作為參數。 欲了解更多資訊,請參閱 載入或解析 XML 時保留空白 ,以及序列 化時保留空白。

另請參閱

適用於

Save(String)

來源:
XDocument.cs
來源:
XDocument.cs
來源:
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 能夠正確縮排。 此方法的特性是不重要的空白區域不會被保留。

如果你想控制空白,可以用這個 take Save 的SaveOptions超載作為參數。 欲了解更多資訊,請參閱 載入或解析 XML 時保留空白 ,以及序列 化時保留空白。

另請參閱

適用於

Save(Stream, SaveOptions)

來源:
XDocument.cs
來源:
XDocument.cs
來源:
XDocument.cs
來源:
XDocument.cs
來源:
XDocument.cs

輸出 XDocument 為指定的 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一個指定格式行為的 A。

備註

預設情況下,這些 options 是 。None 此選項會移除所有多餘的無關留白,並新增適當的無關留餘,使 XML 正確縮排。

如果你想儲存未縮排的 XML,請指定 DisableFormattingoptions。 這會導致寫入者將所有空白完全照 XML 樹中表示的方式寫入。

如果你想移除重複的命名空間宣告,請使用 OmitDuplicateNamespaces 選項。

適用於

Save(TextWriter, SaveOptions)

來源:
XDocument.cs
來源:
XDocument.cs
來源:
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

輸出 TextWriter XML 的 to。

options
SaveOptions

SaveOptions一個指定格式行為的 A。

範例

以下範例展示了此方法的兩種應用。 第一種用法是序列化 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,請指定 DisableFormattingoptions。 這會導致寫入者寫入所有空白區域,完全符合 XML 樹中所表示的樣貌。

如果你想儲存縮排 XML,請不要指定 DisableFormatting 的標誌。options 這樣可以移除所有多餘的無關緊要留白,並加入適當的無關緊要留白,使 XML 能夠正確縮排。 這是預設行為,也是不將 作為Save參數的方法的超載options行為。

欲了解更多資訊,請參閱 載入或解析 XML 時保留空白 ,以及序列 化時保留空白。

另請參閱

適用於

Save(String, SaveOptions)

來源:
XDocument.cs
來源:
XDocument.cs
來源:
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一個指定格式行為的 A。

範例

以下範例展示了此方法的兩種應用。 第一種使用方式保留了留白空間。 第二個是 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,請指定 DisableFormattingoptions。 這會導致寫入者寫入所有空白區域,完全符合 XML 樹中所表示的樣貌。

如果你想儲存縮排 XML,請不要指定 DisableFormatting 的標誌。options 這樣可以移除所有多餘的無關緊要留白,並加入適當的無關緊要留白,使 XML 能夠正確縮排。 這是預設行為,也是不將 作為Save參數的方法的超載options行為。

欲了解更多資訊,請參閱 載入或解析 XML 時保留空白 ,以及序列 化時保留空白。

另請參閱

適用於