一段用来读取XML文件信息的VB代码
使用了递归方式
![{1F22F76B-16B7-4B5E-A2FB-85F741F589E2}0.jpg](https://i-blog.csdnimg.cn/blog_migrate/b2e37ebf382bf1abde7f935c3c310d6d.jpeg)
VB.net代码如下:
Imports
System.xml
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
Public
Class Form1
Class Form1
Inherits System.Windows.Forms.Form
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
#Region " Windows 窗体设计器生成的代码 "
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Public Sub New()Sub New()
MyBase.New()
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
'在 InitializeComponent() 调用之后添加任何初始化
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
End Sub
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
'窗体重写 dispose 以清理组件列表。
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Protected Overloads Overrides Sub Dispose()Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents input As System.Windows.Forms.TextBox
Friend WithEvents outtext As System.Windows.Forms.TextBox
Friend WithEvents Button1 As System.Windows.Forms.Button
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Sub InitializeComponent()
Me.input = New System.Windows.Forms.TextBox
Me.outtext = New System.Windows.Forms.TextBox
Me.Button1 = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'input
'
Me.input.Location = New System.Drawing.Point(16, 8)
Me.input.Name = "input"
Me.input.Size = New System.Drawing.Size(464, 21)
Me.input.TabIndex = 0
Me.input.Text = "http://127.0.0.1/fileup/people.xml"
'
'outtext
'
Me.outtext.BackColor = System.Drawing.SystemColors.HighlightText
Me.outtext.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.outtext.Location = New System.Drawing.Point(0, 40)
Me.outtext.Multiline = True
Me.outtext.Name = "outtext"
Me.outtext.ReadOnly = True
Me.outtext.ScrollBars = System.Windows.Forms.ScrollBars.Both
Me.outtext.Size = New System.Drawing.Size(624, 472)
Me.outtext.TabIndex = 1
Me.outtext.Text = "TextBox2"
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(504, 8)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(96, 24)
Me.Button1.TabIndex = 2
Me.Button1.Text = "读 取"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(632, 517)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.outtext)
Me.Controls.Add(Me.input)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
End Sub
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
#End Region
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim doc As xmldocument = New xmldocument
Dim y As String
doc.Load(input.Text)
Dim rootnode As XmlElement = doc.DocumentElement
outtext.Text = ""
enumeratenode(rootnode, 0)
End Sub
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Private Sub enumeratenode()Sub enumeratenode(ByVal node As XmlNode, ByVal indentval As Integer)
Dim type As String
Select Case node.NodeType
Case XmlNodeType.Element
type = "元素"
Case XmlNodeType.Text
type = "文本"
Case XmlNodeType.Comment
type = "注释"
Case Else
outtext.AppendText(".")
End Select
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
outtext.AppendText(type & "节点找到")
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
Select Case node.NodeType
Case XmlNodeType.Element
outtext.AppendText(",name=" & node.Name & vbCrLf)
Case XmlNodeType.Text
outtext.AppendText(",content=" & node.Value & vbCrLf)
Case XmlNodeType.Comment
outtext.AppendText(",content=" & node.Value & vbCrLf)
Case Else
outtext.AppendText(".")
End Select
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
If Not node.Attributes Is Nothing Then
If node.Attributes.Count <> 0 Then
outtext.AppendText("此节点有属性:")
Dim attr As XmlAttribute
For Each attr In node.Attributes
outtext.AppendText(attr.Name & " =" & attr.Value & vbCrLf)
Next
End If
End If
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
If node.HasChildNodes Then
outtext.AppendText("此节点有子节点:" & vbCrLf)
Dim child As XmlNode
For Each child In node.ChildNodes
enumeratenode(child, indentval + 1)
Next
End If
End Sub
End Class