|
Average Rating: 4.5/5 | Rate this item | 2 users have rated this item.
|
Tip formerly from VB2TheMax
Expertise: Intermediate
Language: VB7
November 11, 2002
DisplayXmlFile - loading a XML file in a TreeView
' Display a XML file in a TreeView
' Note: requires Imports System.Xml
' Example: DisplayXmlFile("employees.xml", TreeView1)
Sub DisplayXmlFile(ByVal filename As String, ByVal tvw As TreeView)
Dim xmldoc As New XmlDocument()
xmldoc.Load(filename)
' Add it to the TreeView Nodes collection
DisplayXmlNode(xmldoc, tvw.Nodes)
' Expand the root node.
tvw.Nodes(0).Expand()
End Sub
Sub DisplayXmlNode(ByVal xmlnode As XmlNode, ByVal nodes As TreeNodeCollection)
' Add a TreeView node for this XmlNode.
' (Using the node's Name is OK for most XmlNode types.)
Dim tvNode As TreeNode = nodes.Add(xmlnode.Name)
Select Case xmlnode.NodeType
Case XmlNodeType.Element
' This is an element: Check whether there are attributes.
If xmlnode.Attributes.Count > 0 Then
' Create an ATTRIBUTES node.
Dim attrNode As TreeNode = tvNode.Nodes.Add("(ATTRIBUTES)")
' Add all the attributes as children of the new node.
Dim xmlAttr As XmlAttribute
For Each xmlAttr In xmlnode.Attributes
' Each node shows name and value.
attrNode.Nodes.Add(xmlAttr.Name & " = '" & xmlAttr.Value & _
"'")
Next
End If
Case XmlNodeType.Text, XmlNodeType.CDATA
' For these node types we display the value
tvNode.Text = xmlnode.Value
Case XmlNodeType.Comment
tvNode.Text = "<!--" & xmlnode.Value & "-->"
Case XmlNodeType.ProcessingInstruction, XmlNodeType.XmlDeclaration
tvNode.Text = "<?" & xmlnode.Name & " " & xmlnode.Value & "?>"
Case Else
' ignore other node types.
End Select
' Call this routine recursively for each child node.
Dim xmlChild As XmlNode = xmlnode.FirstChild
Do Until xmlChild Is Nothing
DisplayXmlNode(xmlChild, tvNode.Nodes)
xmlChild = xmlChild.NextSibling
Loop
End Sub
' Note: This code is taken from Francesco Balena's
' "Programming Microsoft Visual Basic .NET" - MS Press 2002, ISBN 0735613753
' You can read a free chapter of the book at
' http://www.vb2themax.com/HtmlDoc.asp?Table=Books&ID=101000
Francesco Balena
If you have a hot tip and we publish it, we'll pay you. However, due to accounting overhead we no longer pay $10 for a single tip submission. You must accumulate 10 acceptable tips to receive payment. Be sure to include a clear explanation of what the technique does and why it's useful. If it includes code, limit it to 20 lines if possible. Submit your tip here.
|