Leggere un file Xml col DOM in VB 6

Autore: Luca Ruggiero | Tell a Friend

Corso Visual Basic 6
Impara a creare applicazioni gestionali col Visual Basic!

Corso VB.NET
Impara a creare applicazioni desktop con Microsoft .NET!

Corso VBA
Impara a gestire documenti MS Office col linguaggio VBA!

Nella sezione Xml abbiamo visto come utilizzare il DOM per leggere i nodi di un file Xml con diversi linguaggi. In questo Articolo analizzeremo in breve il DOM per Visual Basic, che è leggermente differente da quello utilizzato per il Web.

Si apra un nuovo progetto e si crei una form al cui interno vi sia soltanto una Label che chiameremo lblXml e la si renda abbastanza grande da poter stampare a video i risultati del file Xml test.xml da salvare nella cartella del progetto, di cui espongo il codice:

<?xml version="1.0"?>
<root>
    <dati>
        <nome>Pippo</nome>
    </dati>
    <dati>
        <nome>Pluto</nome>
    </dati>
    <dati>
        <nome>Paperino</nome>
    </dati>
</root>
Prima di iniziare si importi nel progetto un riferimento alla libreria Xml che utilizzeremo, ovvero Microsoft XML, v3.0 (per chi non sa come importare un riferimento, consiglio di leggere questo Articolo).

Si inizializzi l'applicazione con la dichiarazione di alcune variabili che utilizzeremo nel progetto:
Option Explicit
    Dim obj As DOMDocument
    Dim nome As IXMLDOMNodeList
    Dim elemento As IXMLDOMElement
    Dim nodo As IXMLDOMNode
Dichiaro la variabile obj come nuovo documento DOM e mi servirà per importare il file Xml nell'applicazione; la variabile elemento mi serve da appoggio per la variabile nome che recupera il nodo che mi interessa dal documento Xml; la variabile nodo, in fine, mi serve per eseguire il ciclo che restituirà in output tutti i nodi presenti nel documento Xml.

Di seguito il codice commentato da eseguire al caricamento della pagina:
Private Sub Form_Load()
    ' CARICO IL FILE XML
    Set obj = New DOMDocument
    obj.async = False
    obj.Load "test.xml"

    ' RECUPERO IL NODO CHE MI INTERESSA
    Set elemento = obj.documentElement
    Set nome = elemento.selectNodes("dati/nome")

    ' ESTRAGGO TUTTI I NODI E LI STAMPO A VIDEO
    For Each nodo In nome
        lblXml.Caption = lblXml.Caption & nodo.Text & vbCrLf
    Next

    ' UN PO DI PULIZIA...
    Set nodo = Nothing
    Set nome = Nothing
    Set elemento = Nothing
    Set obj = Nothing
End Sub

IN EVIDENZA
HOT LINKS