TreeViewにXMLの要素を表示する
System.Xml.Linq.XDocumentを利用してXMLファイルをロードし、その内容をWindowsフォームのTreeViewに表示する方法を紹介しています。
サンプルコード
using System;
using System.Windows.Forms;
using System.Xml.Linq;
.
.
.
// trvProfile : TreeView
// ロード時に呼び出されるメソッド
private void MainForm_Load(object sender, EventArgs e)
{
// 1-1 XMLファイルをロード
XDocument doc = XDocument.Load("Sample.xml");
// 1-2 ListViewにXMLの要素を追加
trvProfile.Nodes.Add(CreateTreeNode(doc.Root));
}
// XMLファイルを再帰的に走査し、TreeNodeを返すメソッド
private TreeNode CreateTreeNode(XElement elCurr)
{
// 2-1 パラメータで渡されたXML要素の名前を元にノードを作成
TreeNode tnCurr = new TreeNode(elCurr.Name.ToString());
// 2-2 パラメータで渡されたXML要素が子要素を持つ場合は配下を走査
if(elCurr.HasElements)
{
foreach (var elChild in elCurr.Elements())
{
// 2-3 子要素に対して再帰的に処理し、2-1で作成したノードに追加
tnCurr.Nodes.Add(CreateTreeNode(elChild));
}
}
return tnCurr;
}
概要
Windows フォーム アプリケーションで、TreeViewにXMLの内容を表示するサンプルコードです。
このサンプルではXMLの処理に
System.Xml.Linq.XDocument
を利用しています。
まずは、XMLの扱いから。
XDocument.Load()
でファイルからXMLをロードします。
XMLのルート要素にアクセスするには
doc.Root
を用います。
XMLの子要素にアクセスするには
XElement.Elements()
を利用し、
foreach
にて各要素を反復します。
続いてTreeViewの扱いについて。
各要素は
TreeNode
を用います。子要素を追加するには
TreeNode.Nodes.Add(TreeNode)
を利用します。
最後に
TreeView.Nodes
にXMLから生成した
TreeNode
を
Add
して終了です。