Get XML String from XElement

You can use the WriteTo method of the XElement object to an XmlWriter and this can be created in ten different ways like by giving a filename or passing a stream as output or simply giving the StringBuilder to write to:

/// <summary>
/// Generates XML string from an XElement
/// summary>
/// <param name="xml">XElement source</param>
public string GetXmlString(XElement xml)
// could also be any other stream
StringBuilder sb = new StringBuilder();

// Initialize a new writer settings
XmlWriterSettings xws = new XmlWriterSettings();
= true;
= true;

using (XmlWriter xw = XmlWriter.Create(sb, xws))
// the actual writing takes place

return sb.ToString();


It is important to know that the XElement already supports ToString which generates the same results as this code, but when you want to get something else, this could be a good start.

See further information in MSDN.