XDocument.Save メソッド

定義

この XDocument をシリアル化してファイル、TextWriter、または XmlWriter に書き込みます。

オーバーロード

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 をシリアル化して 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

XDocument の書き込み先の XmlWriter

XDocumentXmlWriter に保存する方法を次の例に示します。

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 を指定した 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 が適切にインデントされるように追加の空白が追加されます。 このメソッドの動作は、意味のない空白文字が保持されないことです。

空白を制御する場合は、 Save パラメーターとしてを受け取るのオーバーロードを使用し SaveOptions ます。 DisableFormattingインデントされ XML を保存するには、オプションを使用します。 これにより、ライターは XML ツリーに示されているすべての空白文字を正確に書き込みます。

OmitDuplicateNamespaces重複する名前空間宣言を削除する場合は、オプションを使用します。

適用対象

Save(TextWriter)

この 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&quot;,  
        new XElement(&quot;Child&quot;, &quot;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 が適切にインデントされるように追加の空白が追加されます。 このメソッドの動作は、意味のない空白文字が保持されないことです。

空白を制御する場合は、 Save パラメーターとしてを受け取るのオーバーロードを使用し SaveOptions ます。 詳細については、「 XML の読み込みまたは解析中の空白の保持 」と「シリアル化中の空白の 保持」を参照してください。

こちらもご覧ください

適用対象

Save(String)

この 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&quot;,  
        new XElement(&quot;Child&quot;, &quot;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 が適切にインデントされるように追加の空白が追加されます。 このメソッドの動作は、意味のない空白文字が保持されないことです。

空白を制御する場合は、 Save パラメーターとしてを受け取るのオーバーロードを使用し SaveOptions ます。 詳細については、「 XML の読み込みまたは解析中の空白の保持 」と「シリアル化中の空白の 保持」を参照してください。

こちらもご覧ください

適用対象

Save(Stream, SaveOptions)

オプションで書式設定動作を指定して、この 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 を保存する場合は、のフラグを指定し DisableFormatting options ます。 これにより、ライターは XML ツリーに示されているすべての空白文字を正確に書き込みます。

OmitDuplicateNamespaces重複する名前空間宣言を削除する場合は、オプションを使用します。

適用対象

Save(TextWriter, SaveOptions)

この 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

このメソッドの2つの使用例を次に示します。 最初の使用では、書式設定を使用してをシリアル化し XDocument ます。 2番目の文字は空白を保持します。 ドキュメントには構築された空白が含まれていないため、空白を維持すると、インデントなしで XML が出力されます。

XDocument doc = new XDocument(  
    new XElement("Root&quot;,  
        new XElement(&quot;Child&quot;, &quot;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 を保存する場合は、のフラグを指定し DisableFormatting options ます。 これにより、ライターは XML ツリーで表されるすべての空白を正確に書き込みます。

インデントされた XML を保存する場合は、のフラグを指定しないで DisableFormatting options ください。 これにより、余分に意味のない空白がすべて削除され、XML が適切にインデントされるように、適切でない空白が追加されます。 これは既定の動作で Save あり、 options パラメーターとして受け取らないメソッドのオーバーロードの動作です。

詳細については、「 XML の読み込みまたは解析中の空白の保持 」と「シリアル化中の空白の 保持」を参照してください。

こちらもご覧ください

適用対象

Save(String, SaveOptions)

この 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

このメソッドの2つの使用例を次に示します。 最初の使用では、空白が保持されます。 2つ目は、を XDocument インデント付きでシリアル化します。

XDocument doc = new XDocument(  
    new XElement("Root&quot;,  
        new XElement(&quot;Child&quot;, &quot;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 を保存する場合は、のフラグを指定し DisableFormatting options ます。 これにより、ライターは XML ツリーで表されるすべての空白を正確に書き込みます。

インデントされた XML を保存する場合は、のフラグを指定しないで DisableFormatting options ください。 これにより、余分に意味のない空白がすべて削除され、XML が適切にインデントされるように、適切でない空白が追加されます。 これは既定の動作で Save あり、 options パラメーターとして受け取らないメソッドのオーバーロードの動作です。

詳細については、「 XML の読み込みまたは解析中の空白の保持 」と「シリアル化中の空白の 保持」を参照してください。

こちらもご覧ください

適用対象