Private Sub LoadXMLNode()
Dim xmlDoc As DOMDocument30
Dim intCounter As Integer
Set xmlDoc = New MSXML2.DOMDocument30
xmlDoc.Load ("C:\testXML.xml")
Call RecurseChildNodes(xmlDoc, xmlDoc.childNodes)
Set xmlDoc = Nothing
End Sub
Private Sub RecurseChildNodes(xmlDoc As MSXML2.DOMDocument30, childNode As IXMLDOMNodeList)
Dim CurrChildNode As IXMLDOMNodeList
Dim intNodeCounter As Integer
Dim Name As String
Dim childName As String
Dim thisNode As Node
Dim ctr As Integer
Dim childNum As Integer
ctr = 0
Set CurrChildNode = childNode
For intNodeCounter = 0 To CurrChildNode.Length - 1
If CurrChildNode.Length > 0 Then
Set childNode = CurrChildNode.Item(intNodeCounter).childNodes
If childNode.Length > 0 Then
RecurseChildNodes xmlDoc, childNode
If CurrChildNode.Item(intNodeCounter).nodeName = "Group" Then
Name = CurrChildNode.Item(intNodeCounter).Attributes.getNamedItem("type").nodeValue
Set thisNode = TreeView1.Nodes.Add(, , Name, Name)
'ensure nodes displayed in alphabetical order
thisNode.Sorted = True
childNum = CurrChildNode.Item(intNodeCounter).childNodes.Length
Do While ctr <> childNum
childName = CurrChildNode.Item(intNodeCounter).childNodes(ctr).nodeTypedValue
TreeView1.Nodes.Add Name, tvwChild, childName, childName
ctr = ctr + 1
Loop
ctr = 0
End If
TreeView1.LineStyle = tvwRootLines
End If
End If
Next intNodeCounter
End Sub