XDocument.Save Method (TextWriter, SaveOptions)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Serialize this XDocument 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
- textWriter
Type: System.IO.TextWriter
The TextWriter to output the XML to.
- options
Type: System.Xml.Linq.SaveOptions
A SaveOptions that specifies formatting behavior.
Remarks
By default the options is set to SaveOptions.None, this option will remove all extraneous insignificant white space, and add appropriate insignificant white space so that the XML is properly indented.
If you want to save unindented XML, specify the SaveOptions.DisableFormatting flag for options. This will cause the writer to write all white spaces exactly as represented in the XML tree.
If you want to remove duplicate namespace declarations, specify the SaveOptions.OmitDuplicateNamespaces option.
For more information, see the following topic in the full .NET Framework documentation: Preserving White Space While Serializing.
Examples
The following example shows two uses of this method. The first use serializes the XDocument with formatting. The second preserves white space. Because the document has no white space in it as constructed, preserving white space outputs the XML without any indenting.
Dim output As New StringBuilder
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)
output.Append(sb1.ToString())
output.Append(Environment.NewLine)
End Using
Dim sb2 As StringBuilder = New StringBuilder()
Using sr2 = New StringWriter(sb2)
doc.Save(sr2, SaveOptions.DisableFormatting)
output.Append(sb2.ToString())
output.Append(Environment.NewLine)
End Using
OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
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);
output.Append(sb1.ToString() + Environment.NewLine);
}
StringBuilder sb2 = new StringBuilder();
using (StringWriter sr2 = new StringWriter(sb2))
{
doc.Save(sr2, SaveOptions.DisableFormatting);
output.Append(sb2.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.
See Also