XStreamingElement.Save Method (TextWriter, SaveOptions)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Serialize this streaming element to a TextWriter, optionally disabling formatting.

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

Syntax

'Declaration
Public Sub Save ( _
    textWriter As TextWriter, _
    options As SaveOptions _
)
public void Save(
    TextWriter textWriter,
    SaveOptions options
)

Parameters

Remarks

If you want to save unindented XML, specify the DisableFormatting flag for options. This will cause the writer to write all white space exactly as represented in the XML tree.

If you want to save indented XML, do not specify the DisableFormatting flag for options. This will remove all extraneous insignificant white space, and add appropriate insignificant white space so that the XML is properly indented. This is the default behavior, and the behavior of the overloads of the Save methods that do not take options as a parameter.

Examples

The following example shows two uses of this method. The first use preserves white space. The second one serializes the XStreamingElement with formatting.

Dim output As New StringBuilder
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)
output.Append(sb.ToString())
output.Append(Environment.NewLine)
output.Append("------")
output.Append(Environment.NewLine)
sb = New StringBuilder()
dstTree.Save(New StringWriter(sb), SaveOptions.None)
output.Append(sb.ToString())
output.Append(Environment.NewLine)

OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
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);
output.Append(sb.ToString() + Environment.NewLine);
output.Append("------" + Environment.NewLine);
sb = new StringBuilder();
dstTree.Save(new StringWriter(sb), SaveOptions.None);
output.Append(sb.ToString() + Environment.NewLine);

OutputTextBlock.Text = output.ToString();

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.