Public Function SelectSingleNode(ByVal xmldoc As XmlDocument, ByVal
sInput As String) As String
Dim sSelect() As String, sXML As String, i As Integer, xNode As
XmlNode, tNode As XmlNode
' Break down the input string
sSelect = Split(sInput, "/")
If UBound(sSelect) < 1 Then Return ""
' Get the first node
xNode = xmldoc.GetElementsByTagName(sSelect(1)).Item(0)
' go to the next-to-last element
For i = 2 To UBound(sSelect) - 1
If xNode.HasChildNodes Then
For Each tNode In xNode.ChildNodes
If tNode.Name = sSelect(i) Then
xNode = tNode
Exit For
End If
Next
Else
Return ""
End If
Next
' Handle last node or attribute
If Mid(sSelect(i), 1, 1) = "@" Then
If xNode.Attributes(Mid(sSelect(i), 2)) Is Nothing Then
Return ""
Else
Return xNode.Attributes(Mid(sSelect(i), 2)).InnerText
End If
Else
For Each tNode In xNode.ChildNodes
If tNode.Name = sSelect(i) Then
xNode = tNode
Exit For
End If
Next
If xNode Is Nothing Then Return ""
Return xNode.InnerText
End If
End Function