1 out of 4 rated this helpful - Rate this topic

XmlWriter Class

Represents a writer that provides a fast, non-cached, forward-only means of generating streams or files containing XML data.

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)
public abstract class XmlWriter : IDisposable

The XmlWriter type exposes the following members.

  Name Description
Protected method Supported by the XNA Framework Supported by Portable Class Library XmlWriter Initializes a new instance of the XmlWriter class.
Top
  Name Description
Public property Supported by the XNA Framework Supported by Portable Class Library Settings Gets the XmlWriterSettings object used to create this XmlWriter instance.
Public property Supported by the XNA Framework Supported by Portable Class Library WriteState When overridden in a derived class, gets the state of the writer.
Public property Supported by the XNA Framework Supported by Portable Class Library XmlLang When overridden in a derived class, gets the current xml:lang scope.
Public property Supported by the XNA Framework Supported by Portable Class Library XmlSpace When overridden in a derived class, gets an XmlSpace representing the current xml:space scope.
Top
  Name Description
Public method Supported by the XNA Framework Close When overridden in a derived class, closes this stream and the underlying stream.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(Stream) Creates a new XmlWriter instance using the specified stream.
Public method Static member Supported by the XNA Framework Create(String) Creates a new XmlWriter instance using the specified filename.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(StringBuilder) Creates a new XmlWriter instance using the specified StringBuilder.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(TextWriter) Creates a new XmlWriter instance using the specified TextWriter.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(XmlWriter) Creates a new XmlWriter instance using the specified XmlWriter object.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(Stream, XmlWriterSettings) Creates a new XmlWriter instance using the stream and XmlWriterSettings object.
Public method Static member Supported by the XNA Framework Create(String, XmlWriterSettings) Creates a new XmlWriter instance using the filename and XmlWriterSettings object.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(StringBuilder, XmlWriterSettings) Creates a new XmlWriter instance using the StringBuilder and XmlWriterSettings objects.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(TextWriter, XmlWriterSettings) Creates a new XmlWriter instance using the TextWriter and XmlWriterSettings objects.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Create(XmlWriter, XmlWriterSettings) Creates a new XmlWriter instance using the specified XmlWriter and XmlWriterSettings objects.
Public method Supported by Portable Class Library Dispose()
Protected method Supported by the XNA Framework Supported by Portable Class Library Dispose(Boolean) Releases the unmanaged resources used by the XmlWriter and optionally releases the managed resources.
Public method Supported by the XNA Framework Supported by Portable Class Library Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Supported by the XNA Framework Supported by Portable Class Library Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library Flush When overridden in a derived class, flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
Public method Supported by the XNA Framework Supported by Portable Class Library GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library GetType Gets the Type of the current instance. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library LookupPrefix When overridden in a derived class, returns the closest prefix defined in the current namespace scope for the namespace URI.
Protected method Supported by the XNA Framework Supported by Portable Class Library MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library ToString Returns a string that represents the current object. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library WriteAttributes When overridden in a derived class, writes out all the attributes found at the current position in the XmlReader.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteAttributeString(String, String) When overridden in a derived class, writes out the attribute with the specified local name and value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteAttributeString(String, String, String) When overridden in a derived class, writes an attribute with the specified local name, namespace URI, and value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteAttributeString(String, String, String, String) When overridden in a derived class, writes out the attribute with the specified prefix, local name, namespace URI, and value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteBase64 When overridden in a derived class, encodes the specified binary bytes as Base64 and writes out the resulting text.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteBinHex When overridden in a derived class, encodes the specified binary bytes as BinHex and writes out the resulting text.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteCData When overridden in a derived class, writes out a <![CDATA[...]]> block containing the specified text.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteCharEntity When overridden in a derived class, forces the generation of a character entity for the specified Unicode character value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteChars When overridden in a derived class, writes text one buffer at a time.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteComment When overridden in a derived class, writes out a comment <!--...--> containing the specified text.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteDocType When overridden in a derived class, writes the DOCTYPE declaration with the specified name and optional attributes.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteElementString(String, String) Writes an element with the specified local name and value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteElementString(String, String, String) Writes an element with the specified local name, namespace URI, and value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteElementString(String, String, String, String) Writes an element with the specified local name, namespace URI, and value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteEndAttribute When overridden in a derived class, closes the previous WriteStartAttribute call.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteEndDocument When overridden in a derived class, closes any open elements or attributes and puts the writer back in the Start state.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteEndElement When overridden in a derived class, closes one element and pops the corresponding namespace scope.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteEntityRef When overridden in a derived class, writes out an entity reference as &name;.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteFullEndElement When overridden in a derived class, closes one element and pops the corresponding namespace scope.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteName When overridden in a derived class, writes out the specified name, ensuring it is a valid name according to the W3C XML 1.0 recommendation (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).
Public method Supported by the XNA Framework Supported by Portable Class Library WriteNmToken When overridden in a derived class, writes out the specified name, ensuring it is a valid NmToken according to the W3C XML 1.0 recommendation (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).
Public method Supported by the XNA Framework Supported by Portable Class Library WriteNode(XmlReader, Boolean) When overridden in a derived class, copies everything from the reader to the writer and moves the reader to the start of the next sibling.
Public method WriteNode(XPathNavigator, Boolean) Copies everything from the XPathNavigator object to the writer. The position of the XPathNavigator remains unchanged.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteProcessingInstruction When overridden in a derived class, writes out a processing instruction with a space between the name and text as follows: <?name text?>.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteQualifiedName When overridden in a derived class, writes out the namespace-qualified name. This method looks up the prefix that is in scope for the given namespace.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteRaw(String) When overridden in a derived class, writes raw markup manually from a string.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteRaw(Char[], Int32, Int32) When overridden in a derived class, writes raw markup manually from a character buffer.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartAttribute(String) Writes the start of an attribute with the specified local name.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartAttribute(String, String) Writes the start of an attribute with the specified local name and namespace URI.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartAttribute(String, String, String) When overridden in a derived class, writes the start of an attribute with the specified prefix, local name, and namespace URI.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartDocument() When overridden in a derived class, writes the XML declaration with the version "1.0".
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartDocument(Boolean) When overridden in a derived class, writes the XML declaration with the version "1.0" and the standalone attribute.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartElement(String) When overridden in a derived class, writes out a start tag with the specified local name.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartElement(String, String) When overridden in a derived class, writes the specified start tag and associates it with the given namespace.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteStartElement(String, String, String) When overridden in a derived class, writes the specified start tag and associates it with the given namespace and prefix.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteString When overridden in a derived class, writes the given text content.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteSurrogateCharEntity When overridden in a derived class, generates and writes the surrogate character entity for the surrogate character pair.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(Boolean) Writes a Boolean value.
Public method Supported by the XNA Framework WriteValue(DateTime) Writes a DateTime value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(Decimal) Writes a Decimal value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(Double) Writes a Double value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(Int32) Writes a Int32 value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(Int64) Writes a Int64 value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(Object) Writes the object value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(Single) Writes a single-precision floating-point number.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteValue(String) Writes a String value.
Public method Supported by the XNA Framework Supported by Portable Class Library WriteWhitespace When overridden in a derived class, writes out the given white space.
Top
  Name Description
Explicit interface implemetation Private method Supported by the XNA Framework IDisposable.Dispose For a description of this member, see IDisposable.Dispose.
Top

The XmlWriter class supports the W3C Extensible Markup Language (XML) 1.0 and the Namespaces in XML recommendations.

Note Note

Although the Microsoft .NET Framework includes the XmlTextWriter class, which is an implementation of the XmlWriter class, in the 2.0 release, it is recommended that you use the Create method to create new XmlWriter objects. The Create method allows you to specify the features to support on the created XmlWriter object, and it also allows you to take full advantage of the new features introduced in the 2.0 release.

Note Note

When you use the XmlWriter methods to output XML, the elements and attributes will not be written until you call the Close method. For example, if you are using the XmlWriter to populate an XmlDocument, until you close the XmlWriter, you will not be able to observe the written elements and attributes in the target document.

For more information about the XmlWriter class, see Writing XML with the XmlWriter.

Security Considerations

The following items are things to consider when working with the XmlWriter class.

  • Exceptions thrown by the XmlWriter can disclose path information that you do not want bubbled up to the application. Your applications must catch exceptions and process them appropriately.

  • The XmlWriter does not validate any data that is passed to the WriteDocType or WriteRaw methods. You should not pass arbitrary data to these methods.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Creating an XML File Using XmlWriter
using System;
using System.Collections.Generic;
using System.Text;
//Include the NameSpace to access the XmlWriter Class
using System.Xml;
using System.Data.SqlClient;
class Program
{

 static void Main()
 {
 //Creating XmlWriter Settings
 XmlWriterSettings settings = new XmlWriterSettings();
 settings.Indent = true;
 settings.IndentChars = "  ";
 settings.NewLineOnAttributes = true;

//Using XmlWriter to create xml file.
 using (XmlWriter writer = XmlWriter.Create("c:\\OrderDetails.xml",settings))
 {
  writer.WriteComment("Order Details of PowerToYou");
  writer.WriteStartElement("OrderDetails");
  writer.WriteStartElement("Order");
  writer.WriteAttributeString("OrderID","O001");
  writer.WriteElementString("ProductName","ASP.NET2.0");
  writer.WriteElementString("Price","0");
  writer.WriteEndElement();
  writer.WriteStartElement("Order");
  writer.WriteAttributeString("OrderID","O002");
  writer.WriteElementString("ProductName","Mono-Develop-SDK");
  writer.WriteElementString("Price","0");
  writer.WriteEndElement();
  writer.WriteEndElement();
  writer.Flush();
  
 }
 
 
  
 }
 
}




Result: Xml file in c:\OrderDetails.xml



<?xml version="1.0" encoding="utf-8"?>
<!--Order Details of PowerToYou-->
<OrderDetails>
  <Order
    OrderID="O001">
    <ProductName>ASP.NET2.0</ProductName>
    <Price>0</Price>
  </Order>
  <Order
    OrderID="O002">
    <ProductName>Mono-Develop-SDK</ProductName>
    <Price>0</Price>
  </Order>
</OrderDetails>
Write Indented Xml

Following will put indented xml into s variable.

static void Main(string[] args)
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml("<book><page></page></book>"); // unindented xml
using (MemoryStream ms = new MemoryStream())
{
XmlWriterSettings xws = new XmlWriterSettings();
xws.Indent = true;
using (XmlWriter xmlWriter = XmlWriter.Create(ms, xws))
{
xmlDocument.WriteTo(xmlWriter);
}
ms.Position = 0; StreamReader sr = new StreamReader(ms);
string s = sr.ReadToEnd(); // s will contain indented xml
Console.WriteLine(s);
}
}