Forum >> Principianti >> Fattura elettronica e lettura xml

Pagina: 1

Ciao a tutti,
sto studiando python per lavoro principalmente, e sto seguendo un mini progetto che mi permette di andare a scrivere su un file excel tutti i file xml e i campi che necessito.

Ora, non ho problemi con nessun campo, l'automazione / script funziona già perfettamente, a parte per una cosa soltanto.




alcuni xlm hanno questo path(vedete in basso) altri ne hanno questo.

- 'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'

altri hanno questo path

-'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'




io vorrei estrarre questo campo(il primo) vedere se c'è effettivamente quel campo, se sì prendo il valore, altrimenti prelevo quello sotto e lo sommo alla data di fattura .

il problema che detengo è che nessuan condizione di questo for, e dei sottostanti si avvera mai, sembra skipparlo sempre e comunque e dunque non riesco ad andare al secondo pezzo.




Purtroppo mi sono incartato, avete qualche consiglio da darmi? suggerimento? ci sto perdendo la testa.



for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):

print(scadenza.text) #print thee expiration date

print (scadenza.attrib)

if not scadenza.attrib:

for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):

from datetime import timedelta, date

d1 = datem + timedelta(days=int(scadenza1.text))

print(f'New Expire {d1}')

scadenza.text = d1


Risolto così

if len(obj.findall('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento')):

                            for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):

                                from datetime import datetime

                                print(scadenza.text)

                                self.worksheet.write(row, column + 8, scadenza.text)

                                newscad = scadenza.text[0:10]

                                scad1 = datetime.strptime(newscad, "%Y-%m-%d")

                        else:

                            for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):

                                 from datetime import timedelta, date, datetime

                                 scad1= datem + timedelta(days=int(scadenza1.text))

                                 print(f'New Expire {scad1}')

                                 newdate = datetime.strftime(scad1, "%Y-%m-%d")

                                 self.worksheet.write(row, column + 8, newdate)





Pagina: 1



Esegui il login per scrivere una risposta.