C#を攻略しよう

c#

XML出力

CSVファイルを読み込み、取り出したデータからXML文書を作成するサンプルプログラムです。


[TOP]


1.まず次のようなCSVファイルを作成します。

いぬ , ねこ
りんご , みかん

このファイルを読み込み、取り出したデータをもとにXML文書を作成するサンプルを作ります。

2.「ファイル」→「新しいプロジェクト」→「WINDOWSアプリケーション」を選択。

XML出力

3.ツールボックスから「Button」と「TextBox」、「OpenFileDialog」を上図のように配置する。

4.「button1」をダブルクリックして、イベントハンドラを追加する。

5.下記のコード(黒文字部分)を入力する。

using System.Xml;
using System.IO;

<中略>

private void button1_Click(object sender, EventArgs e)
{

     if (openFileDialog1.ShowDialog() != DialogResult.OK) return;
     textBox1.Text = openFileDialog1.FileName;
     StreamReader sr = null;
     XmlDocument xd = new XmlDocument();
     //XML宣言作成
     XmlDeclaration xmd = xd.CreateXmlDeclaration("1.0", "shift-jis", "yes");
     xd.AppendChild(xmd);
     //ルートノード作成
     XmlElement root = xd.CreateElement("root");
     XmlNode xn1,xn2;
     XmlCharacterData xt;
     //子ノード作成
     xn1 = xd.CreateNode(XmlNodeType.Element, "Element1", "");
     try
     {
         string line;
         sr = new StreamReader(textBox1.Text, Encoding.Default);
         while ((line = sr.ReadLine()) != null) //テキストファイルを一行づつ読み込む
         {
              string[] p1 = line.Split(',');
              foreach(string p2 in p1)
              {
                  //孫ノード作成
                  xn2 = xd.CreateNode(XmlNodeType.Element, "Element2", "");
                  //孫ノードの値
                  xt = xd.CreateTextNode(p2);
                  xn2.AppendChild(xt);//孫ノードの値を孫ノードに追加
                  xn1.AppendChild(xn2);//孫ノードを子ノードに追加
              }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     finally
     {
         sr.Close();
     }
     root.AppendChild(xn1);//子ノードをルートノードに追加
     xd.AppendChild(root);//xmlDocumentオブジェクトにルートノード追加
     textBox2.Text = xd.OuterXml;
}

メソッドの上にマウスポインタをもってくると、ポップアップヒントが表示されます。またF1キーを押すと、ヘルプが立ち上がります。

6.「デバッグ」→「デバッグ開始」または、F5キーを押すと、デバッグとともにプログラムが実行されます。

7.ボタンをクリックすると、ファイルファイアログボックスが開きます。ここで最初に作成したCSVファイルを選択すると、取り出したデータをもとに作成したXML文書がテキストボックスに表示されます。

 

 

※当サイトは、リンクフリーです。