Tengo una función de creación de algunos XmlDocument:¿Cómo poner un atributo de codificación en xml otro que utf-16 con 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();
}
que establecer una codificación, pero después de crear XmlWriter sí tiene codificación UTF-16. Sé que es porque las cadenas (y StringBuilder, supongo) están codificadas en utf-16 y no se puede cambiar.
Entonces, ¿cómo puedo crear fácilmente este xml con el atributo de codificación establecido en "windows-1250"? ni siquiera tiene que estar codificado en esta codificación, solo tiene que tener el atributo especificado.
editar: tiene que estar en .Net 2.0 por lo que no se pueden utilizar los nuevos elementos del marco.
Sé que no puede ser el camino correcto pero he usado blahblah.Replace ("UTF-16", "UTF-8") cuando quería volver a mi cadena XML y funcionó para mí: D –