.NET Tips/XmlTextWriter
System.Xml.XmlTextWriter クラスを使用すると簡単に XML 文字列を生成することができる。例えば以下のように。
XmlTextWriter クラスは出力する文字列のエンコーディングに、コンストラクタで指定された TextWriter のエンコーディングを使用します。で、 StringWriter クラスのエンコーディングは UTF-16 で固定です。 UTF-16 以外のエンコーディングで XmlTextWriter クラスに文字列を出力してもらうには、次のように MemoryStream クラス、 StreamWriter クラスを使用します。
StringWriter writer = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(writer); try { xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("現在時刻"); xmlWriter.WriteString(DateTime.Now.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); } finally { xmlWriter.WriteEndDocument(); } Console.Write(writer.ToString());
- 結果
<?xml version="1.0" encoding="utf-16"?><現在時刻>2005/07/26 16:20:38</現在時刻>
エンコーディング
XmlTextWriter クラスは出力する文字列のエンコーディングに、コンストラクタで指定された TextWriter のエンコーディングを使用します。で、 StringWriter クラスのエンコーディングは UTF-16 で固定です。 UTF-16 以外のエンコーディングで XmlTextWriter クラスに文字列を出力してもらうには、次のように MemoryStream クラス、 StreamWriter クラスを使用します。
MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream, Encoding.GetEncoding("UTF-8")); XmlTextWriter xmlWriter = new XmlTextWriter(writer);
2005年12月25日(日) 20:16:10 Modified by uguuxp