Ancora Nodi Xml e XPath

di il
18 risposte

Ancora Nodi Xml e XPath

Buona Domenica
se c'è una cosa che mi manda in bestia è scrivere 5 righe di codice dopo averne scritto un centinaio funzionanti è vedere che proprio quelle 5 righe non solo non funzionano ma mettono in crisi il resto del codice:
Descrivo il problema ho il presente schema xml (descrivo l'XPath che crea il problema, se tolgo questo tutto funziona)
NodoPadre :DatiPagamento
SottoNodo :CondizioniPagamento
SottoNodo :DettaglioPagamento
nodo:ModalitaPagamento
nodo:ImportoPagamento
...etc seguono altri nodi sotto lo stesso SottoNodo "DettaglioPagamento"
Nello stesso modulo ci sono altri 5 NodesList tutte funzionanti a condizione di eliminare questo gruppo
Io ho scritto così
Set righePagamento = obj.documentElement.selectNodes("//DatiPagamento")
                 
                 For Each lineaPagamento In righePagamento
                    Set ModalitaPagamento = lineaPagamento.selectSingleNode(".//ModalitaPagamento")
                 Debug.Print ModalitaPagamento
                    Set ImportoPagamento = lineaPagamento.selectSingleNode(".//ImportoPagamento")
                 Debug.Print ImportoPagamento.Text
                   Set DataScadenzaPagamento = lineaPagamento.selectSingleNode(".//DataScadenzaPagamento")
                 Debug.Print DataScadenzaPagamento.Text
                    Set IBAN = lineaPagamento.selectSingleNode(".//IBAN")
                 Debug.Print IBAN.Text
                   Set IstitutoFinanziario = lineaPagamento.selectSingleNode(".//IstitutoFinanziario")
                  Debug.Print IstitutoFinanziario.Text
L'ho scritto così è un eufemismo , la verità è che l'ho scritto in mille modi ma credo questo sia il più corretto, confrontato
anche con altri moduli scritti nello stesso Db.
Premetto ancora che ho modificato tutti i moduli del Db dopo i suggerimenti ricevuti da Alka e Andrea in questo forum senza alcun problema.
Qualcuno può dirmi dove sbaglio

PS Il codice non va in errore e non è preceduto da comando
On Error Resume Next
i Next del ciclo For sta alla fine del codice

18 Risposte

  • Re: Ancora Nodi Xml e XPath

    Ciao Gianni,
    qui sei un pò criptico e non sarebbe male spiegassi meglio
    non solo non funzionano ma mettono in crisi il resto del codice

    comunque a prima vista, se è giusto lo schema che hai riportato, stai ciclando il nodo sbagliato.
    Le linee che ti interessano sono sotto DettaglioPagamento e non in DatiPagamento.

    prova così:
     Set righePagamento = obj.documentElement.selectNodes("//DatiPagamento/DettaglioPagamento") 
  • Re: Ancora Nodi Xml e XPath

    Grazie Andrea per la risposta,

    VBAndre ha scritto:


    Ciao Gianni,
    qui sei un pò criptico e non sarebbe male spiegassi meglio
    non solo non funzionano ma mettono in crisi il resto del codice

    Nello stesso modulo, o meglio nella stessa Funzione c'erano già altri 4 gruppi di Nodi, che venivano regolarmente estratti e dopo
    l'inserimento di queste 5 righe non funzionano nemmeno quelli già esistenti (se ritolgo questi ri funziona tutto, boh
    prova così:
     Set righePagamento = obj.documentElement.selectNodes("//DatiPagamento/DettaglioPagamento") 
    No, non funziona!
    Domani sai cosa faccio divido l'estrazione e vedo cosa succede, stasera sono fuso è un giorno che provo sta cosa.
    Access è così vai avanti di filato per un mese intero poi ti blocchi 2, 3 giorni per una fesseria
    Comunque sarà un successo!
    Saluti
  • Re: Ancora Nodi Xml e XPath

    Aggiornamento
    Ho sdoppiato la funzione relativa ai dati pagamento scritta cosi:
    Public Function ImportaDatiPagamento()
    Dim NomeFile, PercorsoCompleto As String
      Dim strsql As String
     Dim rs1 As DAO.Recordset
     Dim rs2 As DAO.Recordset
     'On Error Resume Next
     '
        ' strsql = "SELECT IdFile, NomeFile, path, ModalitaPagamento, " & _
                  "ImportoPagamento, DataScadenzaPagamento, Iban, IstitutoFinanziario " & _
                  "FROM TbFileFattForn"
       ' Set rs1 = CurrentDb.OpenRecordset(strsql)
          'Set rs1 = CurrentDb.OpenRecordset("TbFileFattForn", dbOpenDynaset)
          Do Until rs1.EOF
     
    NomeFile = (rs1!NomeFile) 'Prelevo dalla tabella il nome del file da elaborare
    PercorsoCompleto = (rs1!Path) 'Prelevo dalla tabella il percorso del file da elaborare
    PercorsoCompleto = PercorsoCompleto & NomeFile 'Compongo il percorso completo
    
    '==========================================================================================
    'INIZIO LETTURA FILE XML
    '==========================================================================================
    Dim obj As DOMDocument
    Dim Verifica As Boolean
    Dim Nodo As IXMLDOMNodeList
    Dim Nome As IXMLDOMNode
    Dim righeDettaglioPagamento As IXMLDOMNodeList
    Dim lineaDettaglioPagamento As IXMLDOMNode
    Dim DettaglioPagamento As IXMLDOMNodeList
    Dim ModalitaPagamento As IXMLDOMNode, DataScadenzaPagamento As IXMLDOMNode, Iban As IXMLDOMNode, IstitutoFinanziario As IXMLDOMNode
    Dim ImportoPagamento As IXMLDOMNode ', DettaglioPagamento As IXMLDOMNode
    
    '==========================================================================================
    'ACCESSO AL FILE XML
    '==========================================================================================
    Set obj = New DOMDocument
    obj.async = False
    obj.Load (PercorsoCompleto)
    
                           
                
                 Set righeDettaglioPagamento = obj.documentElement.selectNodes("//DettaglioPagamento")
                     
                     For Each lineaDettaglioPagamento In righeDettaglioPagamento
                        
                        Set ModalitaPagamento = lineaDettaglioPagamento.selectSingleNode("./ModalitaPagamento")
                        Set DataScadenzaPagamento = lineaDettaglioPagamento.selectSingleNode("./DataScadenzaPagamento")
                        Set ImportoPagamento = lineaDettaglioPagamento.selectSingleNode("./ImportoPagamento")
                        Set IstitutoFinanziario = lineaDettaglioPagamento.selectSingleNode("./IstitutoFinanziario")
                        Set Iban = lineaDettaglioPagamento.selectSingleNode("./IBAN")
                   
               
               With rs1
                .Edit
               .Fields("ModalitaPagamento") = Trim(ModalitaPagamento.Text)
               .Fields("ImportoPagamento") = Replace(Trim(ImportoPagamento.Text), ".", ",")
                .Fields("DataScadenzaPagamento") = Trim(DataScadenzaPagamento.Text)
                .Fields("Iban") = Trim(Iban.Text)
               .Fields("IstitutoFinanziario") = Trim(IstitutoFinanziario.Text)
              .Update
           End With  'chiudo il Recordset
      
    
      
      Next
    Set obj = Nothing ' chiude 1° Set
       
       rs1.MoveNext
    Loop
         
    
    rs1.Close
    Set rs1 = Nothing
    
     
    '==========================================================================================
    
    MsgBox "Intercettazione Dati Pagamento" & vbNewLine & "Avvenuta con Successo !", vbInformation, "Import Fatture Passive"
    End Function
    NON Funziona nemmeno sdoppiata

    Il test l'ho eseguito su 160 Documenti
    Tolgo dalla Path tutti i documenti, ormai dopo tutte prove estenuanti, ero disposto a dare la colpa del fallimento
    anche al Vaccino anti Covid
    Provo ad inserire 1 solo documento visualizzato prima di inserirlo.
    Risultato FUNZIONA TUTTO! ancora non canto vittoria

    Visualizzo tutti i 160 documenti uno ad uno.
    Bene non ci crederete TUTTI i 160 NON CONTENEVANO I DATI DI PAGAMENTO
    Lo so che nel forum non si deve scrivere con caratteri maiuscoli perchè equivale a gridare,
    ma io questo volevo fare.
  • Re: Ancora Nodi Xml e XPath

    Gianni55 ha scritto:


    Risultato FUNZIONA TUTTO! ancora non canto vittoria
    Suggerisco di usare il rientro del codice in modo che sia veramente utile. Forse è una stranezza da copia-incolla sul sito ma visto così l'uso dei rientri non solo è incomprensibile ma è fuorviante.
  • Re: Ancora Nodi Xml e XPath

    Gianni55 ha scritto:


    Qualcuno può dirmi dove sbaglio
    Non ho analizzato tutto il codice, ma credo vi siano degli XPath sbagliati.

    Quando cerchi un "sottonodo" partendo da un nodo superiore di riferimento, il percorso va indicato in questo modo:
    ./ModalitaPagamento

    Ad esempio,
    
    Set righePagamento = obj.documentElement.selectNodes("//DatiPagamento")
    For Each lineaPagamento In righePagamento
      Set ModalitaPagamento = lineaPagamento.selectSingleNode("./ModalitaPagamento")
      ' ...
    Next
    
    L'uso del doppio slash ("//") indica che la ricerca del nodo viene fatta dall'inizio (radice) del documento, mentre nel caso del punto (".") si fa riferimento alla locazione corrente, ossia si parte dal nodo di riferimento e da quello si scende nella gerarchia usando un singolo slash ("/").

    Non ricordo se te l'avevo già scritto, ma prima di proseguire in queste implementazioni è d'obbligo uno studio anche veloce di XPath e dell'uso delle sue espressioni, altrimenti sarai sempre fermo o passerai da un errore all'altro, andando per tentativi o sbagliando a comprendere l'uso delle espressioni che scrivi (pensando che facciano una cosa e invece ne fanno un'altra).

    Ciao!
  • Re: Ancora Nodi Xml e XPath

    Alka, grazie della risposta,
    1-già visto lo "studio veloce"
    2-già provato il tuo codice, per altro ho già modificato "Tutti" i miei moduli secondo le tue indicazioni e tutto ha funzionato
    perfettamente, per questo non smetterò mai di ringraziarti.
    Mah in questo caso il problema è stato un altro:
    Tutti e dico tutti i 160 file testati NON contenevano dati relativi al pagamento!
    Quando mi sono accorto di questa cosa, ho inserito nella cartella un file contenente i dati di pagamento e tutto ha funzionato!
    Quindi il problema è diventato diverso:
    Se il codice è relativo ad un solo NodoPadre ed i file testati "Tutti" non contengono i dati (pagamento) non succede nulla di strano (i dati non ci sono quindi non li estrae).
    Ma se questo NodoPadre (pagamento) viene inserito in una funzione dove si estraggono altri NodoPadre ma per il NodoPadre (pagamento) si verifica quella condizione (nessun file contiene dati pagamento)
    Tutti i NodoPadre facenti parte della funzione non vengono estratti.
    Quindi la soluzione che avrei trovato, ma sinceramente mi pare più un accrocchio che una soluzione, sarebbe quella di
    realizzare una funzione per ogni NodoPadre...mah.
    Spero essere stato chiaro.
    Ogni suggerimento è benvenuto, grazie ancora.
  • Re: Ancora Nodi Xml e XPath

    Gianni55 ha scritto:


    1-già visto lo "studio veloce"
    Ok, però va rivisto, in quanto le espressioni XPath sono sbagliate.
    E dovresti anche riportare il codice aggiornato.

    Gianni55 ha scritto:


    2-già provato il tuo codice, per altro ho già modificato "Tutti" i miei moduli secondo le tue indicazioni e tutto ha funzionato
    perfettamente, per questo non smetterò mai di ringraziarti.
    Mah in questo caso il problema è stato un altro:
    [...]
    Questo è un segnale del fatto che il corretto funzionamento può essere legato solamente ad un caso fortuito riscontrato nei file che stai elaborando.

    Mi spiego: se al posto di un path relativo tu specifichi il path assoluto di un elemento, ed elabori solo file che ne sono privi, o che ne contengono solo uno, problemi non ce ne sono, ma appena questi elementi diventano multipli, di fatto elaborerai solo il primo, oppure N volte (in un ciclo For) solo il primo, perché il tuo percorso punta solo ed esclusivamente a uno specifico nodo del file, e non itera su tutti i nodi effettivamente presenti quando si trovano in quantità multipla.

    Gianni55 ha scritto:


    Quindi il problema è diventato diverso: [...]
    Spero essere stato chiaro.
    La spiegazione - almeno per me - non è chiara, ma questo è appunto frutto di una struttura altrettanto poco chiara del programma: il codice va rifattorizzato, ad esempio creando delle Sub per ogni nodo da elaborare, ed evitando di scrivere procedure troppo lunghe, concentrandosi su un singolo elemento, facendo tutte le verifiche preventive del caso, testandolo passo per passo, usando diversi file di prova con condizioni diverse e verificando che l'esito sia quello atteso (presumibilmente corretto).

    Unendo le informazioni delle due discussioni aperte su queste problematiche, è impossibile per chi legge determinare quale sia la situazione attuale, quale sia l'obiettivo e quale sia il problema specifico.

    Bisogna "aggredire" il problema un poco alla volta: fai una funzione che accede a ciascun nodo in cascata per le "sottoelaborazioni" e riporta anche il contenuto di qualche file di esempio come riferimento.

    Se parli genericamente di "NodoPadre" e di nodi figli che non vengono letti se il "NodoPadre" non c'è, non si capisce a cosa si fa riferimento, tranne per il fatto che l'affermazione mi sembra riferirsi a una condizione del tutto normale: se non c'è il padre, non ci sono neanche i figli.
  • Re: Ancora Nodi Xml e XPath

    Gianni55 ha scritto:


    Ogni suggerimento è benvenuto, grazie ancora.
    Vado un po' per conto mio, confesso di non leggere con attenzione gli interventi di Alka che magari ha già detto tutto e meglio.

    Per cocciutaggine mia (non per necessità lavorativa) ho deciso di importare in un database il contenuto di file xml che per le mie capacità definisco molto tosti. Non è stata una passeggiata.
    A noi mancano (almeno) due cose fondamentali: la struttura del file xml e come le informazioni che vi sono contenute devono essere inserite sul tuo database.
    Nel mio caso ho fatto uso intensissimo di funzioni ricorsive, mantenendo la relazione tra nodi e sottonodi con l'uso della chiave primaria e chiave esterna generata da Access. Però volevo inserire tutto quello che era presente nel file, nulla doveva andar perso o ignorato, quindi praticamente c'era un campo in un'apposita tabella per tutto.
    Sono arrivato a scrivere il tutto in pochissime righe di codice (in rapporto alla complessità del file xml) solo dopo aver provato con infiniti "SelectNode" singoli, poi pian piano ho visto quali erano le parti comuni ad ogni chiamata e quali quelle che potevo passare come parametri a funzioni generiche che potevano fare tutto senza ripetere all'infinito le stesse istruzioni.
    Però è fondamentale studiare bene (quindi perdere parecchio tempo) sulla struttura del file.
    Esiste un "tracciato" dei tuoi file xml? giusto per avere il quadro completo. Poi all'interno di quel tracciato potresti dirci che cosa ti interessa importare e con quale "gerarchia".

    PS: fare questo lavoro di importazione degli xml è uno dei motivi che mi ha spinto ad avvicinarmi seriamente ad Access. Possiamo dire che ci sto pensando su da una decina d'anni e solo un paio d'anni fa sono giunto a qualcosa di appena accettabile: ho tutti i dati, mi manca solo la parte di interrogazione, estrazione, stampa, insomma i soliti dettagliuzzi. E' altrettanto doveroso precisare che non ci perdo il sonno, se non in quelle poche settimane in cui mi scatta la follia e decido di fare qualcosa.
  • Re: Ancora Nodi Xml e XPath

    Se parli genericamente di "NodoPadre" e di nodi figli che non vengono letti se il "NodoPadre" non c'è, non si capisce a cosa si fa riferimento, tranne per il fatto che l'affermazione mi sembra riferirsi a una condizione del tutto normale: se non c'è il padre, non ci sono neanche i figli.
    Sicuramente ho sintetizzato male quando mi riferivo al NodoPadre mi riferivo a tutti i figli di quel padre.
    Credo che il problema è diventato un altro, quindi realizzo tutta la funzione con tutti i nodi a cascata e magari posto tutta la funzione in un nuovo 3D.
    Grazie ancora
  • Re: Ancora Nodi Xml e XPath

    I Nodi sono oggetti che devono essere trattati in modo da supportare la ricorsività.
    Ogni nodo può avere Nodi, per questo devi scrivere funzioni Ricorsive altrimenti non sapendo a prirori la profondità del nodo... non fai un gran lavoro.

    Leggiti con attenzione questo:
    https://stackoverflow.com/questions/14401193/loop-through-a-full-xml-document
  • Re: Ancora Nodi Xml e XPath

    Gianni55 ha scritto:


    Credo che il problema è diventato un altro, quindi realizzo tutta la funzione con tutti i nodi a cascata e magari posto tutta la funzione in un nuovo 3D.
    Non fare un terzo thread sullo stesso problema: ne hai già creati due, quindi continua uno di questi, a meno che proprio il problema non sia legato a qualcosa di completamente diverso (che non è il caso se usi un titolo "Ancora Nodi XML e XPath...").
  • Re: Ancora Nodi Xml e XPath

    Grazie Phil per la risposta
    Io non debbo fare un'indagine tra file sconosciuti nel contenuto.
    Nb Ho numerato i NodiPadre per sintesi espositiva.
    Devo leggere 20 NodiChild contenuti in 5 NodiPadre ora il problema è questo:
    Quando tutti i FILE non contengono nessun dato relativi al nodoPadre2 e relativi Child di nodoPadre2
    Tutti i dati relativi ai 5 NodiPadri compresi tutti i 20 NodiChild non vengono estratti.
    Mi viene in mente di procedere in questo modo:
    1-Interrogare preventivamente se i Child di nodoPadre2...contengono o meno dati
    2-Se contengono dati li estraggo altrimenti passo ai NodiPadre successivi.
    Ora è d'obbligo però precisare alcune cose:
    A-I file sono soggetti a validazione (stiamo parlando di fattura elettronica)
    B-I nodiPadre da 1 a 4 contengono NodiChild obbligatori (se così non fosse non verrebbero validati)
    C-Solo il NodoPadre 5 può contenere dati facoltativi per tutti i child in esso contenuti.
    Nb Ho numerato i nodipadre per sintesi espositiva.
    Il mio problema l'ho risolto in questo modo:
    Ho creato una funzione per i 4 NodiPadre e relativi child che "devono" contenere dati obbligatori quindi mai avranno tutti i child vuoti.
    Una funzione a parte per il NodoPadre 5 se i child di questo contengono dati li estrae altrimenti no.
    e tutto funziona, resta chiaro che tutto funziona e riferito al mio problema e che un approfondimento sarebbe molto interessante e magari più in là affronterò la questione.
    Però leggo:
    PS: fare questo lavoro di importazione degli xml è uno dei motivi che mi ha spinto ad avvicinarmi seriamente ad Access. Possiamo dire che ci sto pensando su da una decina d'anni
    Mah io non ho l'età per affrontarlo, nemmeno con la 3°dose
    Per @Alex

    Grazie per la risposta
  • Re: Ancora Nodi Xml e XPath

    Gianni55 ha scritto:


    Ora è d'obbligo però precisare alcune cose:
    A-I file sono soggetti a validazione (stiamo parlando di fattura elettronica)
    Se nessuno li "valida" per te, tieni conto del fatto che potrebbero anche essere malformati oppure non validi, poiché pur trattandosi di fatture elettroniche e sebbene siano generati (di solito) tramite software, nulla vieta al programma che li produce di commettere errori (ne elaboro a migliaia ogni giorno, lo so per esperienza): i bug non sono solo nei programmi di lettura, ma anche in quelli di scrittura, quindi ogni situazione anomala non va ignorata o trascurata, ma rilevata e segnalata.

    Gianni55 ha scritto:


    B-I nodiPadre da 1 a 4 contengono NodiChild obbligatori (se così non fosse non verrebbero validati)
    Diciamo quali nodi sono usando il nome reale, così vediamo se è realmente così.
    Perché io ho qualche dubbio in proposito... o almeno, dipende da quali sono i "nodi" (che poi sono elementi, per usare il termine corretto) a cui facciamo riferimento.

    Gianni55 ha scritto:


    C-Solo il NodoPadre 5 può contenere dati facoltativi per tutti i child in esso contenuti.
    Nb Ho numerato i nodipadre per sintesi espositiva.
    Vedi il punto precedente: usiamo i nomi reali, così sappiamo di quali elementi stiamo parlando.

    Gianni55 ha scritto:


    Però leggo:
    PS: fare questo lavoro di importazione degli xml è uno dei motivi che mi ha spinto ad avvicinarmi seriamente ad Access. Possiamo dire che ci sto pensando su da una decina d'anni
    Mah io non ho l'età per affrontarlo, nemmeno con la 3°dose
    Non è comunque necessario importare i dati in un DB per poterli elaborare, che si tratti di Access o qualsiasi altro RDMBS.

    Ciao!
  • Re: Ancora Nodi Xml e XPath

    Alka ha scritto:


    Gianni55 ha scritto:


    Ora è d'obbligo però precisare alcune cose:
    A-I file sono soggetti a validazione (stiamo parlando di fattura elettronica)
    Se nessuno li "valida" per te, tieni conto del fatto che potrebbero anche essere malformati oppure non validi, poiché pur trattandosi di fatture elettroniche e sebbene siano generati (di solito) tramite software, nulla vieta al programma che li produce di commettere errori (ne elaboro a migliaia ogni giorno, lo so per esperienza): i bug non sono solo nei programmi di lettura, ma anche in quelli di scrittura, quindi ogni situazione anomala non va ignorata o trascurata, ma rilevata e segnalata.
    Preciso che debbo leggere file scaricati da Agenzia Entrate, quindi generati da diversi software

    Diciamo quali nodi sono usando il nome reale, così vediamo se è realmente così.
    Set righeTrasmissione = obj.documentElement.selectNodes("//DatiTrasmissione")
                         For Each lineaTrasmissione In righeTrasmissione
                            Set CodiceDestinatario = lineaTrasmissione.selectSingleNode(".//CodiceDestinatario")
    
    
    Set righeCedente = obj.documentElement.selectNodes("//CedentePrestatore")
        
                     For Each lineaCedente In righeCedente
                        Set IdCodice = lineaCedente.selectSingleNode(".//IdCodice")
                        Set CodiceFiscale = lineaCedente.selectSingleNode(".//CodiceFiscale")
                        Set RegimeFiscale = lineaCedente.selectSingleNode(".//RegimeFiscale")
                        Set Denominazione = lineaCedente.selectSingleNode(".//Denominazione")
                        Set Cognome = lineaCedente.selectSingleNode(".//Cognome")
                        Set Nome = lineaCedente.selectSingleNode(".//Nome")
                        Set Indirizzo = lineaCedente.selectSingleNode("./Sede/Indirizzo")
                        Set NumeroCivico = lineaCedente.selectSingleNode("./Sede/NumeroCivico")
                        Set Comune = lineaCedente.selectSingleNode("./Sede/Comune")
                        Set Cap = lineaCedente.selectSingleNode("./Sede/CAP")
                        Set Provincia = lineaCedente.selectSingleNode("./Sede/Provincia")
                        Set Nazione = lineaCedente.selectSingleNode("./Sede/Nazione")
    
    Set righeCessionario = obj.documentElement.selectNodes("//CessionarioCommittente")
        
                     For Each lineaCessionario In righeCessionario
                        Set PivaCli = lineaCessionario.selectSingleNode(".//IdCodice")
    
    Set righeGenerali = obj.documentElement.selectNodes("//DatiGenerali")
                     
                     For Each lineaGenerali In righeGenerali
                        Set Art73 = lineaGenerali.selectSingleNode(".//Art73")
                        Set TipoDocumento = lineaGenerali.selectSingleNode(".//TipoDocumento")
                        Set Numero = lineaGenerali.selectSingleNode(".//Numero")
                        Set Data = lineaGenerali.selectSingleNode(".//Data")
                        Set ImportoTotaleDocumento = lineaGenerali.selectSingleNode(".//ImportoTotaleDocumento")
                        Set Divisa = lineaGenerali.selectSingleNode(".//Divisa")
    
    Questi sono i NodiPadre che non danno nessun problema perchè almeno un "elemento" per NodoPadre è obbligatorio

    Questo è il 5° quello che dà problemi se inserito nella stessa funzione di cui sopra:
    Set righePagamento = obj.documentElement.selectNodes("//DatiPagamento")
    
                 For Each lineaDettaglioPagamento In righeDatiPagamento
                  
                    Set CondizioniPagamento = lineaDettaglioPagamento.selectSingleNode("./CondizioniPagamento ")   
                     'Accidenti quest'elemento era assente ed è obbligatorio Ora tutto dovrebbe Andare 
                       Questi elementi non sono Obbligatori[/b][/u]
                      
                        Set ModalitaPagamento = lineaDettaglioPagamento.selectSingleNode("./ModalitaPagamento")
                        Set DataScadenzaPagamento = lineaDettaglioPagamento.selectSingleNode("./DataScadenzaPagamento")
                        Set ImportoPagamento = lineaDettaglioPagamento.selectSingleNode("./ImportoPagamento")
                        Set IstitutoFinanziario = lineaDettaglioPagamento.selectSingleNode("./IstitutoFinanziario")
                        Set IBAN = lineaDettaglioPagamento.selectSingleNode("./IBAN")
    
    Su questo c'è da dire che TUTTE le 160 Fatture testate NON contenevano nessun elemento con valori


    Non è comunque necessario importare i dati in un DB per poterli elaborare, che si tratti di Access o qualsiasi altro RDMBS.
    A me serve proprio questo, i dati li debbo portare sul mio Db dedicato ad ogni singolo cliente

    Nb :faccio sapere aggiungendo l'elemento "CondizioniPagamento"
Devi accedere o registrarti per scrivere nel forum
18 risposte