---
title: "recursion genom xml..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/5232-recursion-genom-xml"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "mrblonde"
published: "2001-10-24T12:55:00.000Z"
updated: "2001-10-25T06:53:00.000Z"
replies: 2
views: 372
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/xml/5232-recursion-genom-xml"
---

# recursion genom xml...

## #1 — mrblonde, 2001-10-24T12:55Z

```

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 )

Permalänk: https://www.webforum.nu/p/5232

## #2 — spango, 2001-10-24T22:13Z

Tja... vad sägs om att loopa igenom nodlistan och göra ett anrop av printValue för varje nod i childNodes, kanske?

Permalänk: https://www.webforum.nu/p/238156

## #3 — mrblonde, 2001-10-25T06:53Z

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 :)

Permalänk: https://www.webforum.nu/p/238157

---

Tråden på webben: https://www.webforum.nu/amne/xml/5232-recursion-genom-xml
