Para formatear un texto en el cual tengamos un archivo XML, para que quede con la estructura
del archivo XML, podemos implementar la siguiente clase que recibe como parámetro el texto:
public static String PrintXML(String XML)
{
String Result = "";
MemoryStream mStream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(mStream, Encoding.Unicode);
XmlDocument document = new XmlDocument();
try
{
//Cargamos el XmlDocument con el XML que tenemos en DatosXml
document.LoadXml(DatosXml);
writer.Formatting = Formatting.Indented;
//Formateamos el contenido del documento con el XmlTextWriter
document.WriteContentTo(writer);
writer.Flush();
mStream.Flush();
//Tengo que rebobinar la MemoryStream para leer su contenido.
mStream.Position = 0;
//Almacenamos en un StreamReader el contenido del MemoryStream
StreamReader sReader = new StreamReader(mStream);
//Extraemos el texto del StreamReader.
Result = sReader.ReadToEnd();
mStream.Close();
writer.Close();
}
catch (XmlException)
{
}
return Result;
}