XDocument.Save 方法

定義

將此 XDocument 串行化為檔案、TextWriterXmlWriter

多載

Save(XmlWriter)

將此 XDocument 串行化為 XmlWriter

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 串行化為 XmlWriter

C#
public void Save (System.Xml.XmlWriter writer);

參數

writer
XmlWriter

將寫入 XDocumentXmlWriter

範例

下列範例示範如何將 XDocument 儲存至 XmlWriter

C#
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());

此範例會產生下列輸出:

XML
<Child>
  <GrandChild>some content</GrandChild>
</Child>

另請參閱

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Save(Stream)

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

將這個 XDocument 輸出至指定的 Stream

C#
public void Save (System.IO.Stream stream);

參數

stream
Stream

要輸出此 XDocument 的數據流。

備註

串行化的 XML 將會縮排。 將會移除所有微不足道的空格符,並新增額外的空格符,以便適當縮排 XML。 此方法的行為是不會保留微不足道的空格符。

如果您想要控制空格符,請使用採用 SaveOptions 做為參數的 Save 多載。 使用 [DisableFormatting] 選項來儲存未輸入的 XML。 這會導致寫入器寫入所有空格符,完全如 XML 樹狀結構中所表示。

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

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Save(TextWriter)

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

將此 XDocument 串行化為 TextWriter

C#
public void Save (System.IO.TextWriter textWriter);

參數

textWriter
TextWriter

將寫入 XDocumentTextWriter

範例

下列範例會建立 XDocument,將檔儲存至 StringWriter,然後將字串列印至控制台。

C#
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());

此範例會產生下列輸出:

XML
<?xml version="1.0" encoding="utf-16"?>
<Root>
  <Child>content</Child>
</Root>

備註

串行化的 XML 將會縮排。 將會移除所有微不足道的空格符,並新增額外的空格符,以便適當縮排 XML。 此方法的行為是不會保留微不足道的空格符。

如果您想要控制空格符,請使用採用 SaveOptions 做為參數的 Save 多載。 如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。

另請參閱

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Save(String)

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

將此 XDocument 串行化為檔案,如果檔案存在,則會覆寫現有的檔案。

C#
public void Save (string fileName);

參數

fileName
String

包含檔名的字串。

範例

下列範例會建立 XDocument,將檔儲存至檔案,然後將檔案列印至主控台。

C#
XDocument doc = new XDocument(
    new XElement("Root",
        new XElement("Child", "content")
    )
);
doc.Save("Root.xml");
Console.WriteLine(File.ReadAllText("Root.xml"));

此範例會產生下列輸出:

XML
<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Child>content</Child>
</Root>

備註

串行化的 XML 將會縮排。 將會移除所有微不足道的空格符,並新增額外的空格符,以便適當縮排 XML。 此方法的行為是不會保留微不足道的空格符。

如果您想要控制空格符,請使用採用 SaveOptions 做為參數的 Save 多載。 如需詳細資訊,請參閱 在載入或剖析 XML 時保留空格符,以及 串行化時保留空格符。

另請參閱

適用於

.NET 9 和其他版本
產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Save(Stream, SaveOptions)

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

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

C#
public void Save (System.IO.Stream stream, System.Xml.Linq.SaveOptions options);

參數

stream
Stream

要輸出此 XDocument 的數據流。

options
SaveOptions

指定格式化行為的 SaveOptions

備註

根據預設,options 會設定為 None。 此選項會移除所有無關緊要的空格符,並新增適當的微不足道空格符,讓 XML 正確縮排。

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

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

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Save(TextWriter, SaveOptions)

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

將此 XDocument 串行化為 TextWriter,選擇性地停用格式設定。

C#
public void Save (System.IO.TextWriter textWriter, System.Xml.Linq.SaveOptions options);

參數

textWriter
TextWriter

要輸出 XML 的 TextWriter

options
SaveOptions

指定格式化行為的 SaveOptions

範例

下列範例顯示此方法的兩個用法。 第一個用法會以格式串行化 XDocument。 第二個會保留空格符。 由於檔中沒有建構的空格符,因此保留空格符會輸出 XML,而不會有任何縮排。

C#
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());
}

此範例會產生下列輸出:

<?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 時保留空格符,以及 串行化時保留空格符。

另請參閱

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Save(String, SaveOptions)

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

將此 XDocument 串行化為檔案,選擇性地停用格式設定。

C#
public void Save (string fileName, System.Xml.Linq.SaveOptions options);

參數

fileName
String

包含檔名的字串。

options
SaveOptions

指定格式化行為的 SaveOptions

範例

下列範例顯示此方法的兩個用法。 第一個用法會保留空格符。 第二個會使用縮排串行化 XDocument

C#
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"));

此範例會產生下列輸出:

<?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 時保留空格符,以及 串行化時保留空格符。

另請參閱

適用於

.NET 9 和其他版本
產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1