一段用来读取XML文件信息的VB代码
使用了递归方式
VB.net代码如下:
InheritsSystem.Windows.Forms.Form
#Region"Windows窗体设计器生成的代码"
PublicSubNew()SubNew()
MyBase.New()
'该调用是Windows窗体设计器所必需的。
InitializeComponent()
'在InitializeComponent()调用之后添加任何初始化
EndSub
'窗体重写dispose以清理组件列表。
ProtectedOverloadsOverridesSubDispose()SubDispose(ByValdisposingAsBoolean)
IfdisposingThen
IfNot(componentsIsNothing)Then
components.Dispose()
EndIf
EndIf
MyBase.Dispose(disposing)
EndSub
'Windows窗体设计器所必需的
PrivatecomponentsAsSystem.ComponentModel.IContainer
'注意:以下过程是Windows窗体设计器所必需的
'可以使用Windows窗体设计器修改此过程。
'不要使用代码编辑器修改它。
FriendWithEventsinputAsSystem.Windows.Forms.TextBox
FriendWithEventsouttextAsSystem.Windows.Forms.TextBox
FriendWithEventsButton1AsSystem.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()>PrivateSubInitializeComponent()SubInitializeComponent()
Me.input=NewSystem.Windows.Forms.TextBox
Me.outtext=NewSystem.Windows.Forms.TextBox
Me.Button1=NewSystem.Windows.Forms.Button
Me.SuspendLayout()
'
'input
'
Me.input.Location=NewSystem.Drawing.Point(16,8)
Me.input.Name="input"
Me.input.Size=NewSystem.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=NewSystem.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=NewSystem.Drawing.Size(624,472)
Me.outtext.TabIndex=1
Me.outtext.Text="TextBox2"
'
'Button1
'
Me.Button1.Location=NewSystem.Drawing.Point(504,8)
Me.Button1.Name="Button1"
Me.Button1.Size=NewSystem.Drawing.Size(96,24)
Me.Button1.TabIndex=2
Me.Button1.Text="读取"
'
'Form1
'
Me.AutoScaleBaseSize=NewSystem.Drawing.Size(6,14)
Me.ClientSize=NewSystem.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)
EndSub
#EndRegion
PrivateSubButton1_Click()SubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimdocAsxmldocument=Newxmldocument
DimyAsString
doc.Load(input.Text)
DimrootnodeAsXmlElement=doc.DocumentElement
outtext.Text=""
enumeratenode(rootnode,0)
EndSub
PrivateSubenumeratenode()Subenumeratenode(ByValnodeAsXmlNode,ByValindentvalAsInteger)
DimtypeAsString
SelectCasenode.NodeType
CaseXmlNodeType.Element
type="元素"
CaseXmlNodeType.Text
type="文本"
CaseXmlNodeType.Comment
type="注释"
CaseElse
outtext.AppendText(".")
EndSelect
outtext.AppendText(type&"节点找到")
SelectCasenode.NodeType
CaseXmlNodeType.Element
outtext.AppendText(",name="&node.Name&vbCrLf)
CaseXmlNodeType.Text
outtext.AppendText(",content="&node.Value&vbCrLf)
CaseXmlNodeType.Comment
outtext.AppendText(",content="&node.Value&vbCrLf)
CaseElse
outtext.AppendText(".")
EndSelect
IfNotnode.AttributesIsNothingThen
Ifnode.Attributes.Count<>0Then
outtext.AppendText("此节点有属性:")
DimattrAsXmlAttribute
ForEachattrInnode.Attributes
outtext.AppendText(attr.Name&"="&attr.Value&vbCrLf)
Next
EndIf
EndIf
Ifnode.HasChildNodesThen
outtext.AppendText("此节点有子节点:"&vbCrLf)
DimchildAsXmlNode
ForEachchildInnode.ChildNodes
enumeratenode(child,indentval+1)
Next
EndIf
EndSub
EndClass