我有一个函数创建了一些XmlDocument:
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();
}
我设置了一种编码,但在创建XmlWriter之后,它并没有使用utf-16编码。我知道这是因为字符串(和StringBuilder,我猜)被编码为utf-16,而且你无法更改它。
那么,如何轻松地创建具有编码属性设置为“windows-1250”的xml?它甚至不必以这种编码进行编码,只需要具有指定的属性即可。
编辑:必须在 .Net 2.0 中实现,因此不能使用任何新的框架元素。