Forum
>>
Principianti
>>
Fattura elettronica e lettura xml
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Timer86 |
2022-06-29 18:05:40 - Fattura elettronica e lettura xml
|
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 |
|
Scritto da Timer86 |
2022-07-01 11:03:06 - Re: Fattura elettronica e lettura xml
|
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.