No ha enjuagado el xmlWriter
, por lo que bien puede no haber escrito nada todavía. Además, nunca se completando el elemento raíz, por lo que incluso si tiene escrita cabo
<Root>
no va a haber escrito la etiqueta de cierre. Está intentando cargarlo como un documento completo .
No estoy seguro en qué punto un XmlWriter realmente escribe la parte inicial de un elemento de todos modos, no olvide que puede tener atributos para escribir también. Lo máximo que podría escribir con el código que tienes es <Root
.
Aquí es un completo programa que funciona: (. Tenga en cuenta que no estoy llamando WriteEndDocument
- que sólo parece ser necesaria si todavía tiene elementos abiertos o atributos)
using System;
using System.IO;
using System.Text;
using System.Xml;
class Test
{
static void Main(string[] args)
{
using (MemoryStream stream = new MemoryStream())
{
XmlTextWriter xmlWriter = new XmlTextWriter(stream, Encoding.UTF8);
xmlWriter.Formatting = System.Xml.Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Root");
xmlWriter.WriteEndElement();
xmlWriter.Flush();
XmlDocument doc = new XmlDocument();
stream.Position = 0;
doc.Load(stream);
doc.Save(Console.Out);
}
}
}
(Algo no relacionado: Aunque no es estrictamente necesario, puede envolver el código en bloques 'using' para sus objetos' MemoryStream' y 'XmlTextWriter' - ambos son 'IDisposable'.) – stakx