PDA

View Full Version : [Visual Basic]Piccolo aiuto lettura da xml


pmhwp
08-03-2008, 17:09
Ciao ho questo file xml
<?xml version="1.0" ?>
- <root>
- <dati>
<nome>Pippo</nome>
<codice>1</codice>
</dati>
- <dati>
<nome>Pluto</nome>
<codice>2</codice>
</dati>
- <dati>
<nome>Paperino</nome>
<codice>3</codice>
</dati>
</root>

Sto cercando di leggere questi dati con Visual Basic 6.0.
Per ora sono riuscito a leggerne solo una parte.
Ovvero riesco a leggere i tag nome quindi Pippo Pluto Paperino e a inserirli in una listbox ma non riesco a leggere e inserire nella listbox lstcodici i tag codice.

Ecco il codice che ho prodotto fino a ora:
Option Explicit
Dim obj As DOMDocument
Dim nome As IXMLDOMNodeList
Dim codice As IXMLDOMNodeList
Dim elemento As IXMLDOMElement
Dim nodo As IXMLDOMNode
Dim nodo1 As IXMLDOMNode

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")
Set codice = elemento.selectNodes("dati/nome/codice")

' ESTRAGGO I NODI E LI STAMPO A VIDEO
For Each nodo In nome ' estraggo i clienti
lstclienti.AddItem (nodo.Text)
For Each nodo1 In codice 'estraggo i codici
lstcodice.AddItem (nodo1.Text)
Next
Next

'pulisco
Set nodo = Nothing
Set nodo1 = Nothing
Set nome = Nothing
Set elemento = Nothing
Set obj = Nothing
End Sub


Perchè sbaglio?
Grazie.

pmhwp
08-03-2008, 17:38
Ho trovato l'errore scusate,
era perche codice=dati/codice e non codice=dati/nome/codice

Un'altra domanda...
se volessi estrarre invece solo tutti i codici appartenenti al nome Paperino come devo fare?

MarcoGG
09-03-2008, 08:23
Un'altra domanda...
se volessi estrarre invece solo tutti i codici appartenenti al nome Paperino come devo fare?


Forse così ?

For Each nodo In nome
If nodo.Text = "Paperino" Then
lstclienti.AddItem (nodo.Text)
For Each nodo1 In codice
lstcodice.AddItem (nodo1.Text)
Next
End If
Next