XElement.Save メソッド

定義

この要素の基になる XML ツリーをシリアル化します。 出力は、ファイル、XmlTextWriterTextWriter、または XmlWriter に保存できます。 必要に応じて、書式設定 (インデント) を無効にできます。

オーバーロード

Save(Stream)

この XElement を指定した Stream に出力します。

Save(TextWriter)

この要素をシリアル化して TextWriter に書き込みます。

Save(String)

この要素をシリアル化してファイルに書き込みます。

Save(XmlWriter)

この要素をシリアル化して XmlWriter に書き込みます。

Save(Stream, SaveOptions)

オプションで書式設定動作を指定して、この XElement を指定した Stream に出力します。

Save(TextWriter, SaveOptions)

この要素をシリアル化して TextWriter に書き込み、必要に応じて、書式設定を無効にします。

Save(String, SaveOptions)

この要素をシリアル化してファイルに書き込み、オプションで、書式設定を無効にします。

Save(Stream)

この XElement を指定した 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

この XElement の出力先のストリーム。

注釈

シリアル化された XML はインデントされます。 重要でない空白はすべて削除され、XML が適切にインデントされるように空白が追加されます。 このメソッドの動作は、重要でない空白は保持されないことです。

空白を制御する場合は、そのSaveOptionsオーバーロードSaveをパラメーターとして使用します。 このオプションを DisableFormatting 使用して、格納されていない XML を保存します。 これにより、ライターはすべての空白を XML ツリーで表されるとおりに書き込みます。

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

適用対象

Save(TextWriter)

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

XElement の書き込み先の TextWriter

次の例では、ドキュメントを XElement作成して a StringWriterに保存し、文字列をコンソールに出力します。

XElement root = XElement.Parse(@"<Root> <Child> Text </Child> </Root>");  
using (StringWriter sw = new StringWriter()) {  
    root.Save(sw);  
    Console.WriteLine(sw.ToString());  
}  
Dim root As XElement = <Root><Child> Text </Child></Root>  
Using sw = New StringWriter()  
    root.Save(sw)  
    Console.WriteLine(sw.ToString())  
End Using  

この例を実行すると、次の出力が生成されます。

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

注釈

シリアル化された XML はインデントされます。 重要でない空白はすべて削除され、XML が適切にインデントされるように空白が追加されます。 このメソッドの動作は、空白が保持されないことです。

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

こちらもご覧ください

適用対象

Save(String)

この要素をシリアル化してファイルに書き込みます。

public:
 void Save(System::String ^ fileName);
public void Save (string fileName);
member this.Save : string -> unit
Public Sub Save (fileName As String)

パラメーター

fileName
String

ファイルの名前を格納する String

次の例では、ドキュメントを XElement作成してファイルに保存し、そのファイルをコンソールに出力します。

XElement root = new XElement("Root",  
    new XElement("Child", "child content")  
);  
root.Save("Root.xml");  
string str = File.ReadAllText("Root.xml");  
Console.WriteLine(str);  
Dim root As XElement = _   
        <Root>  
            <Child>child content</Child>  
        </Root>  
root.Save("Root.xml")  
Dim Str As String = File.ReadAllText("Root.xml")  
Console.WriteLine(Str)  

この例を実行すると、次の出力が生成されます。

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

注釈

シリアル化された XML はインデントされます。 重要でない空白はすべて削除され、XML が適切にインデントされるように空白が追加されます。 このメソッドの動作は、XML ツリー内の重要でない空白ノードは保持されないことです。

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

こちらもご覧ください

適用対象

Save(XmlWriter)

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

XElement の書き込み先の XmlWriter

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

StringBuilder sb = new StringBuilder();  
XmlWriterSettings xws = new XmlWriterSettings();  
xws.OmitXmlDeclaration = true;  
using (XmlWriter xw = XmlWriter.Create(sb, xws)) {  
    XElement root = new XElement("Root",  
        new XElement("Child", "child content")  
    );  
    root.Save(xw);  
}  
Console.WriteLine(sb.ToString());  
Dim sb As StringBuilder = New StringBuilder()  
Dim xws As XmlWriterSettings = New XmlWriterSettings()  
xws.OmitXmlDeclaration = True  
Using xw = XmlWriter.Create(sb, xws)  
    Dim root As XElement = <Root>  
                               <Child>child content</Child>  
                           </Root>  
    root.Save(xw)  
End Using  
Console.WriteLine(sb.ToString())  

この例を実行すると、次の出力が生成されます。

<Root><Child>child content</Child></Root>  

こちらもご覧ください

適用対象

Save(Stream, SaveOptions)

オプションで書式設定動作を指定して、この XElement を指定した 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

この XElement の出力先のストリーム。

options
SaveOptions

書式設定の動作を指定する SaveOptions オブジェクト。

注釈

既定では、次に options 設定 Noneされます。 このオプションでは、重要でない空白をすべて削除し、XML が適切にインデントされるように、適切な重要でない空白を追加します。

格納されていない XML を保存する場合は、次のフラグを DisableFormatting 指定します options。 これにより、ライターはすべての空白を XML ツリーで表されるとおりに書き込みます。

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

適用対象

Save(TextWriter, SaveOptions)

この要素をシリアル化して 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 つの使用方法を示しています。 最初の使用では空白が保持されます。 2 つ目は、書式設定を使用して XElement シリアル化します。 文書には作成された空白がないため、空白を保持するとインデントなしで XML が出力されます。

XElement root = XElement.Parse(@"<Root> <Child> Text </Child> </Root>");  

using (StringWriter sw = new StringWriter())  
{  
    root.Save(sw, SaveOptions.DisableFormatting);  
    Console.WriteLine(sw.ToString());  
}  

Console.WriteLine("=====");  

using (StringWriter sw = new StringWriter())  
{  
    root.Save(sw, SaveOptions.None);  
    Console.WriteLine(sw.ToString());  
}  
Dim root As XElement = <Root><Child> Text </Child></Root>  

Using sw = New StringWriter()  
    root.Save(sw, SaveOptions.DisableFormatting)  
    Console.WriteLine(sw.ToString())  
End Using  

Console.WriteLine("=====")  

Using sw = New StringWriter()  
    root.Save(sw, SaveOptions.None)  
    Console.WriteLine(sw.ToString())  
End Using  

この例を実行すると、次の出力が生成されます。

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

注釈

格納されていない XML を保存する場合は、次のフラグを DisableFormatting 指定します options。 これにより、ライターはすべての空白を XML ツリーで表されるとおりに書き込みます。

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

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

こちらもご覧ください

適用対象

Save(String, SaveOptions)

この要素をシリアル化してファイルに書き込み、オプションで、書式設定を無効にします。

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

ファイルの名前を格納する String

options
SaveOptions

書式設定の動作を指定する SaveOptions

次の例は、このメソッドの 2 つの使用方法を示しています。 最初の使用では空白が保持されます。 2 つ目は、書式設定を使用して XElement シリアル化します。

string str;  
XElement root = XElement.Parse(@"<Root> <Child> Text </Child> </Root>");  

root.Save("Root.xml", SaveOptions.DisableFormatting);  
str = File.ReadAllText("Root.xml");  
Console.WriteLine(str);  

Console.WriteLine("=====");  

root.Save("Root.xml", SaveOptions.None);  
str = File.ReadAllText("Root.xml");  
Console.WriteLine(str);  
Dim str As String  
Dim root As XElement = <Root><Child> Text </Child></Root>  

root.Save("Root.xml", SaveOptions.DisableFormatting)  
str = File.ReadAllText("Root.xml")  
Console.WriteLine(str)  

Console.WriteLine("=====")  

root.Save("Root.xml", SaveOptions.None)  
str = File.ReadAllText("Root.xml")  
Console.WriteLine(str)  

この例を実行すると、次の出力が生成されます。

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

注釈

格納されていない XML を保存する場合は、次のフラグを DisableFormatting 指定します options。 これにより、ライターはすべての空白を XML ツリーで表されるとおりに書き込みます。

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

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

こちらもご覧ください

適用対象