Na tohle je potřeba rekurze, prostě si uděláte proceduru, která na vstup dostane kolekci položek, pro každou z nich vytvoří a přidá do stromu TreeNode a navíc zavolá sama sebe na kolekci svých potomků, kteří musí přidávat položky pod tu otcovskou. Vypadat by to mohlo nějak takto (píšu z hlavy, takže tam budou chyby):
Sub CreateNodes(TreeNodeCollection parentCollection, XmlNodeCollection xmlNodes)
'projít všechny položky z kolekce XML elementů
For Each node As XmlNode in xmlNodes
'vytvořit rodičovskou položku
Dim treeNode As TreeNode = parentCollection.Add(...)
'pokud má daný XML element nějaké potomky, zavolat se rekurzivně na potomky a přidat je do právě vytvořené položky
If node.HasChildNodes Then
CreateNodes(treeNode.Nodes, node.ChildNodes)
End If
Next
End Sub
Tuto funkci pak zavoláte nějak takto (v proměnné xmlDoc máte načtený XmlDocument ze vstupu:
CreateNodes(TreeView1.Nodes, xmlDoc.DocumentNode.ChildNodes)
|