共用方式為


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

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

將寫入 XDocumentXmlWriter

範例

下列範例示範如何將 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 輸出至指定的 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。 此方法的行為是不會保留微不足道的空格符。

如果您想要控制空格符,請使用採用 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

將寫入 XDocumentTextWriter

範例

下列範例會建立 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

將這個 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

備註

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

另請參閱

適用於