首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

读取xml文件,画树如何实现

2011-12-26 
读取xml文件,画树怎么实现有这样一段xmlNewDataSetDiffCaption 父节点 /CaptionType 子节点1 /

读取xml文件,画树怎么实现
有这样一段xml
<NewDataSet>
        <Diff>
        <Caption> 父节点 </Caption>
        <Type> 子节点1 </Type>
    </Diff>
        <Diff>
        <Caption> 父节点 </Caption>
        <Type> 子节点2 </Type>
    </Diff>
</NewDataSet>
怎样根据有上面的xml文件得到下面的树呢
父节点
    子节点1  
    子节点2


[解决办法]
' 这段代码未经过测试
' 需要在窗体中加入一个TreeView

Imports System.Xml

Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim xd As New XmlDocument
xd.LoadXml( "D:\b.xml ") ' 将XML存如 "D:\b.xml ",在这里读取XML文档
Dim xmlNodes As XmlNodeList = xd.GetElementsByTagName( "Diff ") ' 遍历Diff元素
Dim xmlNode As XmlNode
For Each xmlNode In xmlNodes ' 针对每个Diff元素处理
Dim tvNodes As TreeNodeCollection = TreeView1.Nodes ' 遍历TreeView1的根节点
Dim tvNode As TreeNode
Dim tn As New TreeNode ' 新建一个节点
tn.Text = xmlNode.ChildNodes(0).ToString()
For Each tvNode In tvNodes ' 针对每个TreeView1的根节点处理
If tvNode.Text = tn.Text Then ' 如果新建的节点和已有的根节点重复了,
Dim tnc As New TreeNode ' 则直接将新建的子节点加到已有的根节点下
tnc.Text = xmlNode.ChildNodes(1).ToString()
tvNode.Nodes.Add(tnc)
Exit For
Else
TreeView1.Nodes.Add(tn) ' 若还没有这个根节点,则先加入新建的根节点
Dim tnc As New TreeNode ' 然后再加入新建的子节点
tnc.Text = xmlNode.ChildNodes(1).ToString()
tn.Nodes.Add(tnc)
End If
Next
Next
End Sub
End Class

热点排行