- 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
して終了です。