I need to build a document by adding sub docs to it. When I do so, I
lose formatting. I've tried a suggestion I saw of simply setting the
formatting a second time to no avail.
Following is a console snippet that demonstrates the problem:
static void Main( string[] args )
{
StringWriter sw = new StringWriter();
XmlTextWriter xw = new XmlTextWriter( sw );
xw.Formatting = Formatting.Indented;
StringWriter sw2 = new StringWriter();
XmlTextWriter xw2 = new XmlTextWriter( sw2 );
xw2.Formatting = Formatting.Indented;
xw.WriteStartDocument();
xw.WriteStartElement( "Parent" );
xw.WriteStartElement( "ParentInner" );
xw.WriteString( "hi mom" );
xw.WriteEndElement();
xw2.WriteStartDocument();
xw2.WriteStartElement( "Child" );
xw2.WriteStartElement( "ChildInner" );
xw2.WriteString( "hi again" );
xw2.WriteEndElement();
xw2.WriteEndElement();
xw2.WriteEndDocument();
xw.WriteRaw( sw2.GetStringBuilder().ToString() );
xw.WriteEndElement();
xw.WriteEndDocument();
using(StreamWriter streamW = new StreamWriter(@"d:\test.xml", false ))
{
streamW.Write( sw.GetStringBuilder().ToString() );
}
xw.Close();
xw2.Close();
}