Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB7
Expertise: Intermediate
Nov 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
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date