XStreamingElement.Save メソッド

定義

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

オーバーロード

名前 説明
Save(Stream)

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

Save(TextWriter)

このストリーミング要素を TextWriterにシリアル化します。

Save(String)

このストリーミング要素をファイルにシリアル化します。

Save(XmlWriter)

このストリーミング要素を XmlWriterにシリアル化します。

Save(Stream, SaveOptions)

この XStreamingElement を指定した Streamに出力し、必要に応じて書式設定の動作を指定します。

Save(TextWriter, SaveOptions)

このストリーミング要素を TextWriterにシリアル化し、必要に応じて書式設定を無効にします。

Save(String, SaveOptions)

このストリーミング要素をファイルにシリアル化し、必要に応じて書式設定を無効にします。

Save(Stream)

ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs

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

ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs

このストリーミング要素を 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が書き込まれるXStreamingElement

次の例では、ソース XML ツリーを作成し、ソース XML ツリーのクエリを使用して XStreamingElement をインスタンス化します。 次に、ストリーミング要素を StringWriterに書き込みます。

XElement srcTree = new XElement("Root",
                       new XElement("Child", 1),
                       new XElement("Child", 2),
                       new XElement("Child", 3),
                       new XElement("Child", 4),
                       new XElement("Child", 5)
                   );

XStreamingElement dstTree = new XStreamingElement("NewRoot",
                        from el in srcTree.Elements()
                        where (int)el >= 3
                        select new XElement("DifferentChild", (int)el)
                    );

StringBuilder sb = new StringBuilder();
dstTree.Save(new StringWriter(sb));
Console.WriteLine(sb.ToString());
Dim srcTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <Child>3</Child>
        <Child>4</Child>
        <Child>5</Child>
    </Root>

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _
                        From el In srcTree.Elements() _
                        Where el.Value >= 3 _
                        Select <DifferentChild><%= el.Value %></DifferentChild> _
                    )

Dim sb As StringBuilder = New StringBuilder()
dstTree.Save(New StringWriter(sb))
Console.WriteLine(sb.ToString())

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

<?xml version="1.0" encoding="utf-16"?>
<NewRoot>
  <DifferentChild>3</DifferentChild>
  <DifferentChild>4</DifferentChild>
  <DifferentChild>5</DifferentChild>
</NewRoot>

注釈

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

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

こちらもご覧ください

適用対象

Save(String)

ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs

このストリーミング要素をファイルにシリアル化します。

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

次の例では、ストリーミング XML ツリーを作成します。 次に、ストリーミング XML ツリーをファイルにシリアル化します。

XElement srcTree = new XElement("Root",
                       new XElement("Child", 1),
                       new XElement("Child", 2),
                       new XElement("Child", 3),
                       new XElement("Child", 4),
                       new XElement("Child", 5)
                   );

XStreamingElement dstTree = new XStreamingElement("NewRoot",
                        from el in srcTree.Elements()
                        where (int)el >= 3
                        select new XElement("DifferentChild", (int)el)
                    );

dstTree.Save("Test.xml");
Console.WriteLine(File.ReadAllText("Test.xml"));
Dim srcTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <Child>3</Child>
        <Child>4</Child>
        <Child>5</Child>
    </Root>

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _
                        From el In srcTree.Elements() _
                        Where el.Value >= 3 _
                        Select <DifferentChild><%= el.Value %></DifferentChild> _
                    )

dstTree.Save("Test.xml")
Console.WriteLine(File.ReadAllText("Test.xml"))

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

<?xml version="1.0" encoding="utf-8"?>
<NewRoot>
  <DifferentChild>3</DifferentChild>
  <DifferentChild>4</DifferentChild>
  <DifferentChild>5</DifferentChild>
</NewRoot>

注釈

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

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

こちらもご覧ください

適用対象

Save(XmlWriter)

ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs

このストリーミング要素を 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

XmlWriterが書き込まれるXElement

次の例では、 XStreamingElement を作成し、 XmlWriterに書き込みます。

XElement srcTree = new XElement("Root",
                       new XElement("Child", 1),
                       new XElement("Child", 2),
                       new XElement("Child", 3),
                       new XElement("Child", 4),
                       new XElement("Child", 5)
                   );

StringBuilder sb = new StringBuilder();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
using (XmlWriter xw = XmlWriter.Create(sb, xws))
{
    XStreamingElement dstTree = new XStreamingElement("NewRoot",
                            from el in srcTree.Elements()
                            where (int)el == 5
                            select new XElement("DifferentChild", (int)el)
                        );

    dstTree.Save(xw);
}
Console.WriteLine(sb.ToString());
Dim srcTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <Child>3</Child>
        <Child>4</Child>
        <Child>5</Child>
    </Root>

Dim sb As StringBuilder = New StringBuilder()
Dim xws As XmlWriterSettings = New XmlWriterSettings()
xws.OmitXmlDeclaration = True
Using xw As XmlWriter = XmlWriter.Create(sb, xws)
    Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _
                            From el In srcTree.Elements() _
                            Where el.Value = 5 _
                            Select <DifferentChild><%= el.Value %></DifferentChild> _
                        )
    dstTree.Save(xw)
End Using
Console.WriteLine(sb.ToString())

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

<NewRoot><DifferentChild>5</DifferentChild></NewRoot>

こちらもご覧ください

適用対象

Save(Stream, SaveOptions)

ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs

この XStreamingElement を指定した 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 オブジェクト。

注釈

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

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

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

適用対象

Save(TextWriter, SaveOptions)

ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs

このストリーミング要素を 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 つ目は、書式設定を使用して XStreamingElement をシリアル化します。

XElement srcTree = new XElement("Root",
                       new XElement("Child", 1),
                       new XElement("Child", 2),
                       new XElement("Child", 3),
                       new XElement("Child", 4),
                       new XElement("Child", 5)
                   );

XStreamingElement dstTree = new XStreamingElement("NewRoot",
                        from el in srcTree.Elements()
                        where (int)el == 3
                        select new XElement("DifferentChild", (int)el)
                    );

StringBuilder sb = new StringBuilder();
dstTree.Save(new StringWriter(sb), SaveOptions.DisableFormatting);
Console.WriteLine(sb.ToString());
Console.WriteLine("------");
sb = new StringBuilder();
dstTree.Save(new StringWriter(sb), SaveOptions.None);
Console.WriteLine(sb.ToString());
Dim srcTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <Child>3</Child>
        <Child>4</Child>
        <Child>5</Child>
    </Root>

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _
                        From el In srcTree.Elements() _
                        Where el.Value = 3 _
                        Select <DifferentChild><%= el.Value %></DifferentChild> _
                    )

Dim sb As StringBuilder = New StringBuilder()
dstTree.Save(New StringWriter(sb), SaveOptions.DisableFormatting)
Console.WriteLine(sb.ToString())
Console.WriteLine("------")
sb = New StringBuilder()
dstTree.Save(New StringWriter(sb), SaveOptions.None)
Console.WriteLine(sb.ToString())

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

<?xml version="1.0" encoding="utf-16"?><NewRoot><DifferentChild>3</DifferentChild></NewRoot>
------
<?xml version="1.0" encoding="utf-16"?>
<NewRoot>
  <DifferentChild>3</DifferentChild>
</NewRoot>

注釈

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

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

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

こちらもご覧ください

適用対象

Save(String, SaveOptions)

ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs
ソース:
XStreamingElement.cs

このストリーミング要素をファイルにシリアル化し、必要に応じて書式設定を無効にします。

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 つ目は、書式設定を使用して XStreamingElement をシリアル化します。

XElement srcTree = new XElement("Root",
                       new XElement("Child", 1),
                       new XElement("Child", 2),
                       new XElement("Child", 3),
                       new XElement("Child", 4),
                       new XElement("Child", 5)
                   );

XStreamingElement dstTree = new XStreamingElement("NewRoot",
                        from el in srcTree.Elements()
                        where (int)el == 3
                        select new XElement("DifferentChild", (int)el)
                    );

dstTree.Save("Test1.xml", SaveOptions.DisableFormatting);
dstTree.Save("Test2.xml", SaveOptions.None);
Console.WriteLine(File.ReadAllText("Test1.xml"));
Console.WriteLine("------");
Console.WriteLine(File.ReadAllText("Test2.xml"));
Dim srcTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <Child>3</Child>
        <Child>4</Child>
        <Child>5</Child>
    </Root>

Dim dstTree As XStreamingElement = New XStreamingElement("NewRoot", _
                        From el In srcTree.Elements() _
                        Where el.Value = 3 _
                        Select <DifferentChild><%= el.Value %></DifferentChild> _
                    )

dstTree.Save("Test1.xml", SaveOptions.DisableFormatting)
dstTree.Save("Test2.xml", SaveOptions.None)
Console.WriteLine(File.ReadAllText("Test1.xml"))
Console.WriteLine("------")
Console.WriteLine(File.ReadAllText("Test2.xml"))

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

<?xml version="1.0" encoding="utf-8"?><NewRoot><DifferentChild>3</DifferentChild></NewRoot>
------
<?xml version="1.0" encoding="utf-8"?>
<NewRoot>
  <DifferentChild>3</DifferentChild>
</NewRoot>

注釈

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

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

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

こちらもご覧ください

適用対象