mrblondeMedlem sedan aug. 20011 386 inlägg
Function printValue(node As MSXML.IXMLDOMNode)
Dim vlu As MSXML.IXMLDOMNode
For Each nde In node.childNodes
btest = nde.hasChildNodes
sname = nde.nodeName
If nde.hasChildNodes Then
printValue nde.childNodes
Else
Set vlu = nde.Attributes.getNamedItem("Value")
Label1.Caption = Label1.Caption & vbCrLf & vlu.nodeValue
End If
Next
End Function
---- annan funktion
Dim prm As MSXML.IXMLDOMNode
Set prm = msg.documentElement.getElementsByTagName("PARAMS").Item(0)
printValue prm
Denna enkla kod vill jag använda för att skriva ut de values som finns i mitt fina xml meddelande, (eller i vilket som helst) med det funkar inte alls.
Eftersom jag inte kan sända in en nodelista, osv.. jag är helt förvirrad.
Någon annan måste ju ha traverserat runt i en XML lista någongång, hur fan gör jag!! (i VB )
------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.
spangoMedlem sedan juni 20006 147 inlägg
Tja... vad sägs om att loopa igenom nodlistan och göra ett anrop av printValue för varje nod i childNodes, kanske?
------------------
You can be a coward for a few minutes, or dead forever. /Rincewind
mrblondeMedlem sedan aug. 20011 386 inlägg
hade hoppats på ett med tydligt svar, men jag löste det själv, och eftersom ajg är så snäll får ni se min funktion
Function BindNodeRecursive(ByVal nodeList As MSXML.IXMLDOMNodeList, ByVal dic As Scripting.Dictionary)
On Error GoTo errorHandler
Dim vlu As MSXML.IXMLDOMNode
Dim node As MSXML.IXMLDOMNode
Dim n As Long
For n = 0 To nodeList.length - 1
Set node = nodeList.Item(n)
If node.hasChildNodes Then
BindNodeRecursive node.childNodes, dic
Else
Set vlu = node.Attributes.getNamedItem("Value")
If dic.Exists(vlu.nodeValue) Then
vlu.nodeValue = dic(vlu.nodeValue)
End If
End If
Next
CtxSetComplete
Exit Function
errorHandler:
Set vlu = Nothing
Set node = Nothing
HandleError g_modName, "BindNodeRecursive"
End Function
Den stoppar in värden från ett dictionary i noderna med, om nu någon undrade :)
------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.