weldox ha scritto:
riddik ha scritto:
Mi dai il link per scaricarlo per piacere?
anche io devo affrontare il problema dell'errore causato dall'assenza di un nodo, se trovo qualcosa lo scrivo qui.
Ciao io importo in questo modo e se i nodi non esistono non mi da nessun errore funziona tutto correttamente ... almeno per le mie esigenze... sono in fase di test
'==============================================================================================================================
'APRO LA TABELLA PER RECUPERARE IL NOME FILE XML DA ELABORARE PER POTER AGGIORNARE I CAMPI CON I VALORI RECUPERATI DALL'XML STESSO
'==============================================================================================================================
Dim NomeFile, PercorsoCompleto As String
Dim RS1 As ADODB.Recordset   ' Tabella (ELENCO_FILE)popolato precedentemente con tutti i nomi dei file xml e il rispettivo percorso
Set RS1 = New ADODB.Recordset
    
RS1.Open "ELENCO_FILE_NUOVI_DA_AGGIUNGERE", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   
Do Until RS1.EOF
    
NomeFile = (RS1!NOME_FILE) 'Prelevo dalla tabella il nome del file da elaborare
PercorsoCompleto = (RS1!PERCORSO) '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, Nodo2, Nodo3, Nodo4, Nodo5, Nodo6, Nodo7, Nodo8 As IXMLDOMNodeList
   Dim Nome As IXMLDOMNode
   Dim Testo1, Testo2, Testo3, Testo4, Testo5, Testo6, Testo7, Testo8 As String
   
    Testo1 = ""
    Testo2 = ""
    Testo3 = ""
    Testo4 = ""
    Testo5 = ""
    Testo6 = ""
    Testo7 = ""
    Testo8 = ""
    
   '==========================================================================================
   'ACCESSO AL FILE XML
   '==========================================================================================
   Set Obj = New DOMDocument
   Obj.async = False
   Obj.Load (PercorsoCompleto)
   '==========================================================================================
   'NODO RAGIONE SOCIALE
   '==========================================================================================
   'seleziono il nodo da leggere
   Set Nodo = Obj.DocumentElement.SelectNodes("//CedentePrestatore//Denominazione")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo
   'estraggo il valore del nodo
   Testo1 = Testo1 & " " & Nome.Text
   Next
   '==========================================================================================
   'NODO NUMERO FATTURA
   '==========================================================================================
   Set Nodo2 = Obj.DocumentElement.SelectNodes("//DatiGenerali//Numero")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo2
       'estraggo il valore del nodo
       Testo2 = Testo2 & " " & Nome.Text
   Next
   '==========================================================================================
   'NODO DATA FATTURA
   '==========================================================================================
   Set Nodo3 = Obj.DocumentElement.SelectNodes("//DatiGenerali//Data")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo3
       'estraggo il valore del nodo
       Testo3 = Testo3 & " " & Nome.Text
   Next
   '==========================================================================================
   'NODO DATA CODICE DESTINATARIO
   '==========================================================================================
   Set Nodo4 = Obj.DocumentElement.SelectNodes("//DatiTrasmissione//CodiceDestinatario")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo4
       'estraggo il valore del nodo
       Testo4 = Testo4 & " " & Nome.Text
   Next
   '==========================================================================================
   'NODO DATA MAIL PEC
   '==========================================================================================
   Set Nodo5 = Obj.DocumentElement.SelectNodes("//DatiTrasmissione//PECDestinatario")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo5
       'estraggo il valore del nodo
       Testo5 = Testo5 & " " & Nome.Text
   Next
   '==========================================================================================
   'NODO PAGAMENTO
   '==========================================================================================
   Set Nodo6 = Obj.DocumentElement.SelectNodes("//DatiPagamento//ModalitaPagamento")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo6
       'estraggo il valore del nodo
       Testo6 = Testo6 & " " & Nome.Text
   Next
   '==========================================================================================
   'NODO ESTENSIONE ALLEGATO
   '==========================================================================================
   Set Nodo7 = Obj.DocumentElement.SelectNodes("//Allegati//FormatoAttachment")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo7
       'estraggo il valore del nodo
       Testo7 = Testo7 & " " & Nome.Text
   Next
   '==========================================================================================
   'NODO NOME ALLEGATO
   '==========================================================================================
   Set Nodo8 = Obj.DocumentElement.SelectNodes("//Allegati//NomeAttachment")
   'leggo tutti i dati del nodo
   For Each Nome In Nodo8
       'estraggo il valore del nodo
       Testo8 = Testo8 & " " & Nome.Text
   Next
   '==========================================================================================
   'CHIUDO IL FILE
   '==========================================================================================
   Set Obj = Nothing
   
'==========================================================================================
'AGGIORNO I CAMPI CON I DATI RECUPERATI
'==========================================================================================
   With RS1
      .Fields("RAG_SOC") = Trim(Testo1)
      .Fields("NUMERO") = Trim(Testo2)
      .Fields("DATA") = Left(Trim(Testo3), 10)
      .Fields("CODICE_DESTINATARIO") = Trim(Testo4)
      .Fields("MAIL_PEC") = Trim(Testo5)
      .Fields("PAGAMENTO") = Left(Trim(Testo6), 4)
      .Fields("ESTENSIONE_ALLEGATO") = Trim(Testo7)
      .Fields("NOME_ALLEGATO") = Trim(Testo8)
      .Update
    End With
'==========================================================================================
'LOOP TABELLA PER AGGIORNAMENTO CAMPI
RS1.MoveNext
Loop
'==========================================================================================
MsgBox "CAMPI AGGIORNATI"
Non sono un esperto ma a me funziona (ho provato solo con i nodi che vedete)...p.s. io prima ho creato una tabella dove vado ad elaborare solo i file aggiunti e non tutti ogni volta