Ciao SirJo, ti allego un file reale XML (con dati inventati)
<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica versione="FPR12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.7"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 fatturaordinaria_v1.2.xsd ">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>61234556</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>09LpA</ProgressivoInvio>
<FormatoTrasmissione>1938</FormatoTrasmissione>
<CodiceDestinatario>102938</CodiceDestinatario>
<ContattiTrasmittente>
<Telefono>0111223344</Telefono>
<Email>pincopallino@gmail.com</Email>
</ContattiTrasmittente>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>001122334455</IdCodice>
</IdFiscaleIVA>
<CodiceFiscale>0109080706</CodiceFiscale>
<Anagrafica>
<Denominazione>PINCOPALLINO SRL</Denominazione>
</Anagrafica>
<RegimeFiscale>RF123</RegimeFiscale>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIALE INVENTATO 6</Indirizzo>
<CAP>50000</CAP>
<Comune>NONESISTE</Comune>
<Provincia>BOH</Provincia>
<Nazione>IT</Nazione>
</Sede>
<IscrizioneREA>
<Ufficio>BOHX</Ufficio>
<NumeroREA>12345</NumeroREA>
<CapitaleSociale>10400.00</CapitaleSociale>
<SocioUnico>SM</SocioUnico>
<StatoLiquidazione>LN</StatoLiquidazione>
</IscrizioneREA>
<Contatti>
<Telefono>0522304969</Telefono>
<Fax>0585857667</Fax>
<Email>PINCOPALLINO1@GMAIL.COM</Email>
</Contatti>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>2010302040</IdCodice>
</IdFiscaleIVA>
<CodiceFiscale>109087060</CodiceFiscale>
<Anagrafica>
<Denominazione> PIPPOPLUTO SRL</Denominazione>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIALE INVENTATO2 9</Indirizzo>
<CAP>54037</CAP>
<Comune>COMUNE INVENTATO</Comune>
<Provincia>MAH</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD24</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2020-11-01</Data>
<Numero>10205/2020/FAT</Numero>
<ImportoTotaleDocumento>3.54</ImportoTotaleDocumento>
<Causale>FATTURA VENDITA MERCE</Causale>
</DatiGeneraliDocumento>
<DatiDDT>
<NumeroDDT>7183</NumeroDDT>
<DataDDT>2021-10-11</DataDDT>
</DatiDDT>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>INTERNO</CodiceTipo>
<CodiceValore>10203</CodiceValore>
</CodiceArticolo>
<Descrizione>ARACHIDI SALATE</Descrizione>
<Quantita>1.000</Quantita>
<UnitaMisura>PZ</UnitaMisura>
<PrezzoUnitario>3.35400</PrezzoUnitario>
<ScontoMaggiorazione>
<Tipo>SC</Tipo>
<Percentuale>2.00</Percentuale>
</ScontoMaggiorazione>
<ScontoMaggiorazione>
<Tipo>SC</Tipo>
<Percentuale>2.00</Percentuale>
</ScontoMaggiorazione>
<PrezzoTotale>3.22</PrezzoTotale>
<AliquotaIVA>10.00</AliquotaIVA>
<NumeroLinea>2</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>INTERNO</CodiceTipo>
<CodiceValore>2030</CodiceValore>
</CodiceArticolo>
<Descrizione>POPCORN</Descrizione>
<Quantita>1.000</Quantita>
<UnitaMisura>KG</UnitaMisura>
<PrezzoUnitario>4,70</PrezzoUnitario>
<PrezzoTotale>4,70</PrezzoTotale>
<AliquotaIVA>10.00</AliquotaIVA>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>10.00</AliquotaIVA>
<ImponibileImporto>3.22</ImponibileImporto>
<Imposta>0.32</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
</DatiRiepilogo>
</DatiBeniServizi>
<DatiPagamento>
<CondizioniPagamento>TP02</CondizioniPagamento>
<DettaglioPagamento>
<ModalitaPagamento>MP01</ModalitaPagamento>
<DataScadenzaPagamento>2021-10-12</DataScadenzaPagamento>
<ImportoPagamento>3.54</ImportoPagamento>
</DettaglioPagamento>
</DatiPagamento>
<Allegati>
<NomeAttachment>ZIPINVENTATO.zip</NomeAttachment>
<DescrizioneAttachment>DOCUMENTO ALLEGATO</DescrizioneAttachment>
<Attachment>
</Attachment>
</Allegati>
</FatturaElettronicaBody>
</p:FatturaElettronica>
Sto seguendo quello che viene riportato in questa guida
https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_net-fattura-elettronica-leggere-il-file-_1617.aspx
usando questo codice:
Private Sub BtnCarica_Click(sender As Object, e As EventArgs) Handles BtnCarica.Click
Try
Dim PercorsoFile As String = "D:\FattureRicevute\It999fattura.xml"
Dim fatturaElettronica As Fattura.FatturaElettronica = New Fattura.FatturaElettronica()
Dim serializzare As XmlSerializer = New XmlSerializer(GetType(Fattura.FatturaElettronica))
Dim readerLettura As StreamReader = New StreamReader(PercorsoFile)
fatturaElettronica = CType(serializzare.Deserialize(readerLettura), Fattura.FatturaElettronica)
readerLettura.Close()
Dim NomeFornitore As String = fatturaElettronica.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici.Anagrafica.Denominazione
Dim totaleImporto As Decimal = fatturaElettronica.FatturaElettronicaBody.DatiGenerali.DatiGeneraliDocumento.ImportoTotaleDocumento
Dim Prodotti As String = ""
For Each DescrizioneProdotti In fatturaElettronica.FatturaElettronicaBody.DatiBeniServizi.DettaglioLinee
Prodotti &= "NomeProdotto: " & DescrizioneProdotti.Descrizione & " Quantità: " & DescrizioneProdotti.Quantita & " Prezzo per singolo prodotto: " & DescrizioneProdotti.PrezzoUnitario & " Prezzo Totale: " & DescrizioneProdotti.PrezzoTotale & vbCrLf
Next
MessageBox.Show(Prodotti)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
e adattandolo alle mie esigenze:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim DettaglioProdotti As String = ""
For Each DescrProd In fatturaElettronica.FatturaElettronicaBody.DatiBeniServizi.DettaglioLinee
Dim descrizione = DescrProd.Descrizione
Dim quantita = DescrProd.Quantita
Dim PrUnit = DescrProd.PrezzoUnitario
Dim dt As New DataTable
dt.Columns.Add("Descrizione")
dt.Columns.Add("Quantità")
dt.Columns.Add("Prezzo unitario")
dt.Rows.Add(descrizione, quantita, PrUnit)
DataGridView1.DataSource = dt
Next
End Sub
Risultato: nel Datagridview1 ottengo solo una riga, contenente i dati solo del prodotto "ARACHIDI SALATE" e non anche di "POPCORN".
Nella guida, il ciclo For each permette di visualizzare i campi "Descrizione", "Prezzo unitario" e "Quantità" in una msgbox, mentre io vorrei inserirli nel dtgridview, ma non riesco a farlo.
Spero di esser stato più chiaro. Mi scuso per la poca chiarezza del post e dei successivi commenti, mi sto approcciando da poco a questo mondo.
Grazie ancora.
Lorenzo.