Domanda

Come rimuovere la distinta base da un file XML che si sta creando?

Ho provato con il nuovo metodo di UTF8Encoding (false), ma non funziona. Ecco il codice che ho:

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);
È stato utile?

Soluzione

Si sta salvando il file due volte - una volta con XmlTextWriter e una volta con xmlDoc.Save. Salvare dalla XmlTextWriter non è l'aggiunta di una distinta base -. Risparmio con xmlDoc.Save è

Basta salvare ad un TextWriter, invece, in modo da poter specificare nuovamente la codifica:

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

Altri suggerimenti

mi piacerebbe scrivere il codice XML in una stringa (costruttore) al posto e quindi scrivere quella stringa in un file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top