BlaBla.cn

将 XML 数据与 TreeView 绑定的实例代码

这个示例演示将一个 XML 文件与 TreeView 控件绑定,并用 TreeView 控件显示 XML 文件每个 XmlNode 的第一个属性的值。主要的做法是遍历 XML 文件的每个节点,同时在 TreeView 里新建相应的节点,将每个 XML 节点第一个属性的值写入新建的 TreeView 的节点。

如果你还不知道如何遍历 XML 文件的每个 XmlNode,请先看 遍历 XML 文件所有节点的实例代码

准备一个 XML 文件

准备一个 XML 文件,内容如下,将其存为 C:\menu.xml。

<?xml version="1.0" encoding="UTF-8"?>

<menu name ="1">

<menu name ="1.1"/>

<menu name ="1.2">

<menu name ="1.2.1"/>

<menu name ="1.2.2"/>

<menu name ="1.2.3">

<menu name ="1.2.3.1"/>

<menu name ="1.2.3.2"/>

<menu name ="1.2.3.3"/>

</menu>

<menu name ="1.2.4"/>

</menu>

<menu name ="1.3">

<menu name ="1.3.1"/>

<menu name ="1.3.2"/>

</menu>

<menu name ="1.4"/>

<menu name ="1.5"/>

</menu>

创建项目 (Project) 和添加控件

打开 Visual Studio 2005。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序 (Windows Application)。在名称 (Name) 框中键入 XmlTreeView,再单击确定 (OK)。

在 Toolbox 里选中 Button 控件,将其拖到 Form1 上。在 Properties 窗口将该 Button 的 Name 属性改为 btnBind,将其 Text 属性改为 Bind XML To TreeView。

在 Toolbox 里选中 TreeView 控件,将其拖到 Form1 上。在 Properties 窗口将该 TreeView 的 Name 属性改为 treeMenu。

加入代码

双击 Bind XML To TreeView 的 Button,进入代码编辑窗口。添加代码,使其如下:

Imports System.Xml

Public Class Form1

 

Private Sub btnBind_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnBind.Click

Dim xmlDoc As New Xml.XmlDocument

xmlDoc.Load("C:\menu.xml")

 

treeMenu.BeginUpdate()

treeMenu.Nodes.Clear()

BindXmlToTreeView(xmlDoc.DocumentElement, treeMenu.Nodes)

treeMenu.ExpandAll()

treeMenu.EndUpdate()

End Sub

 

Private Sub BindXmlToTreeView(ByVal father As XmlNode, _

ByVal treeNodes As TreeNodeCollection)

'Add TreeNode

Dim strText As String = father.Attributes(0).Value

Dim treeNode As TreeNode = treeNodes.Add(strText)

 

'Add TreeNodes recursively

Dim child As Xml.XmlNode

For Each child In father.ChildNodes

BindXmlToTreeView(child, treeNode.Nodes)

Next

End Sub

 

End Class

选择调试 (Debug) 菜单中的开始调试 (Start Debugging),运行该程序。或者直接按快捷键 F5 运行。你会看到如下画面。

提示

用 XmlDocument.Load 这个方法,可以载入某个 XML 文件。

用 XmlDocument.DocumentElement 这个属性,可以得到 XML 文件的根节点。

用 XmlNode.ChildNodes 这个属性得到某个 XML 节点的所有子节点。每个子节点也是一个 XmlNode。

用 XmlNode.Attributes(integer).Value 这个属性,可以得到 XML 节点的某一个属性值。Attributes 括号里的值表示是该节点的第几个属性,Attributes(0) 表示该节点的第一个属性,Attributes(1) 表示该节点的第二个属性,依次类推。

用 TreeView.Nodes.Clear 方法可以删除 TreeView 的所有节点 (TreeNode)。

用 TreeView.ExpandAll 可以展开 TreeView 所有节点 (TreeNode)。

用TreeNodeCollection.Add(string) 方法可以在 TreeNodeCollection 最后添加一个 TreeNode。

该实例用了递归算法进行遍历,在 BindXmlToTreeView 过程里调用了 BindXmlToTreeView 。

用 BeginUpdate 方法禁止重画 TreeView。

用 EndUpdate 方法允许重画 TreeView。

 
作者或编者:布啦布啦   最近更新日期:2007-04-28
参考来源:www.BlaBla.cn 布啦布啦网页教程与代码

© 2005-2008 BlaBla.cn 版权所有