我有一个创建一些 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 中,所以不能使用任何新的框架元素。