我有一个函数创建一些的XmlDocument:如何将编码属性添加到xml其他与UTF-16和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();
}
我设置编码,但之后,我创建的XmlWriter它确实有UTF-16编码。我知道这是因为字符串(和StringBuilder,我想)在UTF-16编码,你不能改变它。
那么我怎样才能轻松地创建这个XML编码属性设置为“Windows-1250”?它甚至不需要在这种编码中编码,它只需要具有指定的属性。
编辑:它必须在.Net 2.0,所以任何新的框架元素不能使用。
我知道这不可能是正确的做法,但我用blahblah.Replace(“UTF-16”,“UTF-8”)时,我想回报我的XML字符串,它为我工作:d – 2017-08-08 17:35:55