J'ai fonction la création de certains XmlDocument:Comment mettre un attribut de codage à xml autre que utf-16 avec XmlWriter?
public string CreateOutputXmlString(ICollection<Field> fields)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = Encoding.GetEncoding("windows-1250");
StringBuilder builder = new StringBuilder();
XmlWriter writer = XmlWriter.Create(builder, settings);
writer.WriteStartDocument();
writer.WriteStartElement("data");
foreach (Field field in fields)
{
writer.WriteStartElement("item");
writer.WriteAttributeString("name", field.Id);
writer.WriteAttributeString("value", field.Value);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Flush();
writer.Close();
return builder.ToString();
}
je définir un codage mais après je crée XmlWriter elle a le codage utf-16. Je sais que c'est parce que les chaînes (et StringBuilder je suppose) sont encodées en utf-16 et vous ne pouvez pas le changer.
Alors, comment puis-je facilement créer ce fichier XML avec l'attribut de codage défini sur "windows-1250"? il n'a même pas besoin d'être encodé dans cet encodage, il doit juste avoir l'attribut spécifié.
éditer: il doit être dans .Net 2.0 de sorte que tous les nouveaux éléments d'infrastructure ne peuvent pas être utilisés.
Je sais qu'il ne peut pas être la bonne façon, mais j'utilisé blahblah.Replace (« utf-16 », « utf-8 ») quand je voulais retourner ma chaîne xml et cela a fonctionné pour moi: D –