Pregunta

¿Cómo eliminar la lista de materiales de un archivo XML que se está creando?

He intentado usar el nuevo método (falso) UTF8Encoding, pero no funciona. Aquí está el código que tengo:

XmlDocument xmlDoc = new XmlDocument();
XmlTextWriter xmlWriter = new XmlTextWriter(filename, new UTF8Encoding(false));
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
xmlWriter.WriteStartElement("items");
xmlWriter.Close();
xmlDoc.Load(filename);
XmlNode root = xmlDoc.DocumentElement;
XmlElement item = xmlDoc.CreateElement("item");
root.AppendChild(item);
XmlElement itemCategory = xmlDoc.CreateElement("category");
XmlText itemCategoryText = xmlDoc.CreateTextNode("test");
item.AppendChild(itemCategory);
itemCategory.AppendChild(itemCategoryText);
xmlDoc.Save(filename);
¿Fue útil?

Solución

Usted está guardando el archivo dos veces - una vez con XmlTextWriter y una vez con xmlDoc.Save. El ahorro de la XmlTextWriter no es añadir una lista de materiales -. Ahorro con xmlDoc.Save está

Sólo tiene que guardar a una TextWriter lugar, por lo que se puede especificar la codificación de los caracteres:

using (TextWriter writer = new StreamWriter(filename, false,
                                            new UTF8Encoding(false))
{
    xmlDoc.Save(writer);
}

Otros consejos

Me gustaría escribir el código XML de una cadena (constructor) en lugar y luego escribir esa cadena en el archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top