' 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 SubSub 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 = "" 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 LoopEnd 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

