Newsgroup: it.comp.appl.access
Titolo: XML con più nodi denominati allo stesso modo ma di numero variabile

Salve,
 
ho un problema sull'importazione di un file XML. Si parla, come avrete intuito della fatturazione elettronica.
 
Ho creato uno script con VBA che funziona alla perfezione quando ho la maggior parte dei file XML da importare. La situazione in cui funziona è la seguente:
 
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>COD_FORNITORE</CodiceTipo>
<CodiceValore>1D1G7</CodiceValore>
</CodiceArticolo>
<Descrizione>OPTIPLEX 3060 SFF</Descrizione>
<Quantita>5.00</Quantita>
<UnitaMisura>PCE</UnitaMisura>
<PrezzoUnitario>554.79</PrezzoUnitario>
<PrezzoTotale>2773.95</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DettaglioLinee>
<NumeroLinea>2</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>EN</CodiceTipo>
<CodiceValore>5397063622016</CodiceValore>
</CodiceArticolo>
<Descrizione>SE2216H</Descrizione>
<Quantita>5.00</Quantita>
<UnitaMisura>PCE</UnitaMisura>
<PrezzoUnitario>79.05</PrezzoUnitario>
<PrezzoTotale>395.25</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
 
Ho creato uno script con questo codice:
 
Set Nodo = xmldoc.SelectNodes("//FatturaElettronicaBody/DatiBeniServizi/DettaglioLinee")
 
 
For i = 0 To Nodo.Length - 1
Descrizione = Nodo.Item(0).SelectNodes("//Descrizione").Item(i).Text
PrezzoUnitario = Nodo.Item(0).SelectNodes("//PrezzoUnitario").Item(i).Text
AliquotaIva = Nodo.Item(0).SelectNodes("//AliquotaIVA").Item(i).Text
Quantita = Nodo.Item(0).SelectNodes("//Quantita").Item(i).Text
CodiceArticolo = Nodo.Item(0).SelectNodes("//CodiceArticolo/CodiceValore").Item(i).Text
 
**inserisco i dati quindi in tabella**
 
next i
 
 
E tutto funziona correttamente. 
 
Solo che ho dei file XML che si presentano così:
 
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>COD_FORNITORE</CodiceTipo>
<CodiceValore>1D1G7</CodiceValore>
</CodiceArticolo>
<CodiceArticolo>
<CodiceTipo>TU</CodiceTipo>
<CodiceValore>1D1G7</CodiceValore>
</CodiceArticolo>
<CodiceArticolo>
<CodiceTipo>EN</CodiceTipo>
<CodiceValore>5397184102534</CodiceValore>
</CodiceArticolo>
<Descrizione>OPTIPLEX 3060 SFF</Descrizione>
<Quantita>5.00</Quantita>
<UnitaMisura>PCE</UnitaMisura>
<PrezzoUnitario>554.79</PrezzoUnitario>
<PrezzoTotale>2773.95</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DettaglioLinee>
<NumeroLinea>2</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>EN</CodiceTipo>
<CodiceValore>5397063622016</CodiceValore>
</CodiceArticolo>
<CodiceArticolo>
<CodiceTipo>TU</CodiceTipo>
<CodiceValore>210-AFZT</CodiceValore>
</CodiceArticolo>
<Descrizione>SE2216H</Descrizione>
<Quantita>5.00</Quantita>
<UnitaMisura>PCE</UnitaMisura>
<PrezzoUnitario>79.05</PrezzoUnitario>
<PrezzoTotale>395.25</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
 
In pratica, in questi casi, mi vengono importate in modo corretto le seguenti variabili:
Descrizione, PrezzoUnitario, AliquotaIva e quantita
 
mentre codicearticolo, purtroppo viene importata per il secondo nodo, il secondo codice valore del primo nodo
 
Dato che I codicevalore, possono essere quindi singoli ma anche multipli per ogni singolo nodo, come far capire di passare all'importazione del nodo successivo?
 
Grazie a tutti quelli che mi leggono e/o rispondo.
 
Simone

nessuna idea?