Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- import xml.dom.minidom
- import csv
- import glob
- for file in glob.glob('CAMT.053*.xml'):
- print(file)
- camt = xml.dom.minidom.parse(file)
- document = camt.documentElement
- csvfile = open(file.replace('.xml','.csv'), 'w', newline='')
- csvwriter = csv.writer(csvfile, delimiter=',',quotechar='"', quoting=csv.QUOTE_MINIMAL)
- csvwriter.writerow(['Date','Description','Amount'])
- balance_before = float(document.getElementsByTagName('Bal')[0].getElementsByTagName('Amt')[0].firstChild.data)
- balance_after = float(document.getElementsByTagName('Bal')[1].getElementsByTagName('Amt')[0].firstChild.data)
- balance = 0
- for entry in document.getElementsByTagName('Ntry'):
- name = entry.getElementsByTagName('AddtlNtryInf')[0].firstChild.data
- date = entry.getElementsByTagName('BookgDt')[0].getElementsByTagName('Dt')[0].firstChild.data
- for entry_detail in entry.getElementsByTagName('NtryDtls'):
- for transaction in entry_detail.getElementsByTagName('TxDtls'):
- amount = transaction.getElementsByTagName('Amt')[0].firstChild.data
- direction = transaction.getElementsByTagName('CdtDbtInd')[0].firstChild.data
- if(direction == 'DBIT'): amount = float(amount)*-1
- if(transaction.getElementsByTagName('Nm')):
- name = transaction.getElementsByTagName('Nm')[0].firstChild.data
- print(date + ' : ' + name + ' : ' + str(amount))
- csvwriter.writerow([date,name,str(amount)])
- balance = balance + float(amount)
- print(str(balance))
- print(str(balance_before) + ' - ' + str(balance_after) + ' = ' + str(balance_after - balance_before))
Add Comment
Please, Sign In to add comment