XmlTextWriterはXMLを出力する操作を助けてくれるクラスです。そしてDomのように重たくなく、且つ直感的な操作で、XMLを作成することができます。
しかし、なぜか「encoding="utf-16"」になってしまいす。 たとえば「encoding="utf-8"」にしたい場合は、WriteProcessingInstructionメソッドにて指定が可能です。(コードのコメント部分を生かす)
また、xml宣言そのものを出したくないといった場合は、「XmlWriterSettings.OmitXmlDeclaration」の指定にて出力しない方法があります。コードはこんな感じ
また、xml宣言そのものを出したくないといった場合は、「XmlWriterSettings.OmitXmlDeclaration」の指定にて出力しない方法があります。コードはこんな感じ
StringBuilder sb = new StringBuilder();
XmlWriterSettings xs = new XmlWriterSettings();
xs.Indent = true;
using (XmlWriter xw = XmlTextWriter.Create(sb, xs))
{
//xw.WriteProcessingInstruction("xml", "version='1.0' encoding='utf-8'"); //エンコードが指定
xw.WriteStartElement("ROOT");
xw.WriteStartElement("AAA");
xw.WriteAttributeString("aa1", "123");
xw.WriteAttributeString("aa2", "456");
xw.WriteString("ああああ");
xw.WriteEndElement();//</AAA>
xw.WriteStartElement("BBB");
xw.WriteStartElement("BBB1");
xw.WriteString("いいいい1");
xw.WriteEndElement();//</BBB1>
xw.WriteStartElement("BBB2");
xw.WriteString("いいいい2");
xw.WriteEndElement();//</BBB2>
xw.WriteEndElement();//</BBB>
xw.WriteEndElement();//</ROOT>
xw.Close();
}
XmlWriterSettings xs = new XmlWriterSettings();
xs.Indent = true;
using (XmlWriter xw = XmlTextWriter.Create(sb, xs))
{
//xw.WriteProcessingInstruction("xml", "version='1.0' encoding='utf-8'"); //エンコードが指定
xw.WriteStartElement("ROOT");
xw.WriteStartElement("AAA");
xw.WriteAttributeString("aa1", "123");
xw.WriteAttributeString("aa2", "456");
xw.WriteString("ああああ");
xw.WriteEndElement();//</AAA>
xw.WriteStartElement("BBB");
xw.WriteStartElement("BBB1");
xw.WriteString("いいいい1");
xw.WriteEndElement();//</BBB1>
xw.WriteStartElement("BBB2");
xw.WriteString("いいいい2");
xw.WriteEndElement();//</BBB2>
xw.WriteEndElement();//</BBB>
xw.WriteEndElement();//</ROOT>
xw.Close();
}
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<AAA aa1="123" aa2="456">ああああ</AAA>
<BBB>
<BBB1>いいいい1</BBB1>
<BBB2>いいいい2</BBB2>
</BBB>
</ROOT>
<ROOT>
<AAA aa1="123" aa2="456">ああああ</AAA>
<BBB>
<BBB1>いいいい1</BBB1>
<BBB2>いいいい2</BBB2>
</BBB>
</ROOT>
0 件のコメント:
コメントを投稿