Populate a Treeview from an XML File

  • Thread starter Thread starter Jack
  • Start date Start date
J

Jack

Hello,

I am trying to populate a Treeview from a XML File.

XML File:

<Papers>
<Paper>

<PaperName>New York Times</PaperName>

<Dealership>

<DealershipName>Tom Jones Ford</DealershipName>

<DealershipZIP>77036</DealershipZIP>

</Dealership>

<Dealership>

<DealershipName>Jim's Ford</DealershipName>

<DealershipZIP>77056</DealershipZIP>

</Dealership>

</Paper>

<Paper>

<PaperName>Houston Post</PaperName>

<Dealership>

<DealershipName>Mark Smith Ford</DealershipName>

<DealershipZIP>72036</DealershipZIP>

</Dealership>

<Dealership>

<DealershipName>Tom's Ford</DealershipName>

<DealershipZIP>79056</DealershipZIP>

</Dealership>

<Dealership>

<DealershipName>Wills's Accura</DealershipName>

<DealershipZIP>78256</DealershipZIP>

</Dealership>

</Paper>

</Papers>



I would like to have the Paper Name with the Dealership name as the child
nodes.



Thanks for any help,



Jack
 
Hi you can use a recursive loop for that, just loop over all document nodes
and check if they have childnodes:

Hth

Greetz Peter


Imports System.Xml


Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.Load

Dim dom As New XmlDocument
dom.Load("your xmlfile")

TreeView1.Nodes.Clear()
TreeView1.Nodes.Add(New TreeNode(dom.DocumentElement.Name))
Dim tNode As New TreeNode
tNode = TreeView1.Nodes(0)

AddNode(dom.DocumentElement, tNode)
TreeView1.ExpandAll()

End Sub

Private Sub AddNode(ByRef inXmlNode As XmlNode, ByRef inTreeNode As
TreeNode)
Dim xNode As XmlNode
Dim tNode As TreeNode
Dim nodeList As XmlNodeList
Dim i As Long


If inXmlNode.HasChildNodes() Then
nodeList = inXmlNode.ChildNodes
For i = 0 To nodeList.Count - 1
xNode = inXmlNode.ChildNodes(i)
inTreeNode.Nodes.Add(New TreeNode(xNode.Name))
tNode = inTreeNode.Nodes(i)
AddNode(xNode, tNode)
Next
Else
inTreeNode.Text = (inXmlNode.OuterXml).Trim
End If
End Sub
 
Hello,

Thanks for you help, I'm trying to get just the Paper Names and the
Dealership Names to appear and nothing else.

Can this be done?

Thanks in for any help,

Jack
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top