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でエンコードされており、変更できないためです。
それでは、encoding 属性を「windows-1250」に設定して、この xml を簡単に作成するにはどうすればよいでしょうか。このエンコーディングでエンコードする必要さえありません。指定された属性が必要です。
編集: .Net 2.0 である必要があるため、新しいフレームワーク要素は使用できません。