VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
XMLファイルをツリービューに表示したかったのでMakeTreeという関数を作成しました。この関数を使用すると、指定したXMLファイルの構造そのままをツリービューに表示することができます。
private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlgOpen = new OpenFileDialog(); //ファイルを開くダイアログを表示する dlgOpen.Filter = "XMLファイル(*.xml)|*.xml"; if (dlgOpen.ShowDialog() == DialogResult.OK) { //XMLファイルを読み込む System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); xmlDoc.Load(dlgOpen.FileName); System.Xml.XmlElement xmlRoot = xmlDoc.DocumentElement; TreeNode trvRoot = new TreeNode(); //XMLをツリーノードに変換する treeView1.Nodes.Clear(); MakeTree(xmlRoot, ref trvRoot); //XMLをツリービューに変換したノードを追加する treeView1.Nodes.Add(trvRoot); } } /// <summary> /// XMLをツリーノードに変換する /// </summary> /// <param name="xmlParent">変化するXMLデータ</param> /// <param name="trvParent">変換されたツリーノード</param> private void MakeTree(System.Xml.XmlElement xmlParent, ref TreeNode trvParent) { if (xmlParent.HasChildNodes) { for (int i = 0; i < xmlParent.ChildNodes.Count; i++) { if (xmlParent.ChildNodes[i].GetType().ToString().IndexOf("XmlElement") >= 0) { System.Xml.XmlElement xmlChild = (System.Xml.XmlElement)xmlParent.ChildNodes[i]; TreeNode trvChild = new TreeNode(); trvChild.Text = xmlChild.Name; // 子ノードがまだあるか? if (xmlChild.HasChildNodes) MakeTree(xmlChild, ref trvChild); trvParent.Nodes.Add(trvChild); } else if (xmlParent.ChildNodes[i].GetType().ToString().IndexOf("XmlText") >= 0) { TreeNode trvChild = new TreeNode(); trvChild.Text = xmlParent.ChildNodes[i].InnerText; trvParent.Nodes.Add(trvChild); } } } //親ノードの設定 trvParent.Text = xmlParent.Name; }
<?xml version="1.0" encoding="shift_jis"?> <ADDRESS_DATA> <ZIP>012-3456</ZIP> <ADDRESS>東京都港区赤坂XXX</ADDRESS> <NAME>ひろずどっとねっと</NAME> </ADDRESS_DATA>