Предполагая, что вы просто хотите переформатировать документ XML, чтобы разместить новые узлы на новых строках и добавить отступы, тогда, если вы используете .NET 3.5 или выше, тогда лучшим решением будет анализ, а затем вывод с помощью XDocument, что-то вроде:
string unformattedXml;
string formattedXml;
unformattedXml = "<?xml version=\"1.0\"?><book><author>Lewis, C.S.</author><title>The Four Loves</title></book>";
formattedXml = System.Xml.Linq.XDocument.Parse(unformattedXml).ToString();
Console.WriteLine(formattedXml);
Аккуратный ху?
Затем следует переформатировать узлы XML.
Для этого с предыдущими версиями фреймворка требуется гораздо больше труда, поскольку нет встроенных функций для повторного вычисления пробела.
Фактически, сделать это, используя классы до Linq:
string unformattedXml;
string formattedXml;
unformattedXml = "<?xml version=\"1.0\"?><book><author>Lewis, C.S.</author><title>The Four Loves</title></book>";
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(unformattedXml);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Xml.XmlWriter xw = System.Xml.XmlTextWriter.Create(sb, new System.Xml.XmlWriterSettings() { Indent = true });
doc.WriteTo(xw);
xw.Flush();
formattedXml = sb.ToString();
Console.WriteLine(formattedXml);