BlaBla.cn

遍历 XML 文件所有节点的实例代码

这个示例演示如何载入一个 XML 文件,然后遍历该 XML 文件的所有节点,并用 Textbox 显示该 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) 框中键入 IterateNodes,再单击确定 (OK)。

在 Toolbox 里选中 Button 控件,将其拖到 Form1 上。在 Properties 窗口将该 Button 的 Name 属性改为 btnIterate,将其 Text 属性改为 Iterate Xml Nodes。

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

加入代码

双击 Iterate Xml Nodes 的 Button,进入代码编辑窗口。添加代码,使其如下:

Imports System.Xml

Public Class Form1

 

Private Sub btnIterate_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnIterate.Click

Dim xmlDoc As New Xml.XmlDocument

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

IterateXmlNodes(xmlDoc.DocumentElement)

End Sub

 

Private Sub IterateXmlNodes(ByVal father As Xml.XmlNode)

Dim child As Xml.XmlNode

Me.txtContent.Text &= father.Attributes(0).Value & vbNewLine

For Each child In father.ChildNodes

IterateXmlNodes(child)

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) 表示该节点的第二个属性,Attributes(3) 表示该节点的第三个属性,依次类推。

用 For Each... Next 语句遍历所有 XML 节点。

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

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

© 2005-2008 BlaBla.cn 版权所有