OFX 내보내기 파일에서 xml 필드를 수정하려고합니다. 내보내기 제작자는 파일에있는 fitid에 대한 고유 키를 생성하지 않으므로 xml의 다른 두 필드에서 생성 된 고유 키로 해당 필드를 바꾸려고합니다.수정 된 XML 요소를 파이썬에 작성하십시오.
나는 다음 코드를 가지고 있지만 새로운 FITID 필드를 작성하는 방법을 찾을 수 없습니다.
XML 파일의 샘플은 다음과 같습니다
<BANKTRANLIST>
<DTSTART>20130705</DTSTART>
<DTEND>20130805</DTEND>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20130708</DTPOSTED>
<TRNAMT>-7.99</TRNAMT>
<FITID>08072013660</FITID>
<NAME>HARE HATCH SHEEPLANDS </NAME>
<MEMO>Effective date: 06/07/2013</MEMO>
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20130708</DTPOSTED>
<TRNAMT>-6.75</TRNAMT>
<FITID>08072013660</FITID>
<NAME>BINGHAMS BREWERY LIMIT </NAME>
<MEMO>Effective date: 06/07/2013</MEMO>
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20130709</DTPOSTED>
<TRNAMT>-282.5</TRNAMT>
<FITID>09072013660</FITID>
<NAME>WWW.DVLA.GOV.UK </NAME>
<MEMO>Effective date: 08/07/2013</MEMO>
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20130715</DTPOSTED>
<TRNAMT>-84.78</TRNAMT>
<FITID>15072013660</FITID>
<NAME>BP TWYFORD CONNECT </NAME>
<MEMO>Effective date: 12/07/2013</MEMO>
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20130715</DTPOSTED>
<TRNAMT>-25.1</TRNAMT>
<FITID>15072013660</FITID>
<NAME>WHITE HART SHERFIE </NAME>
<MEMO>Effective date: 13/07/2013</MEMO>
</STMTTRN>
</BANKTRANLIST>
내 파이썬 시도는 다음과 같습니다
from xml.etree import ElementTree as et
datafile = '/Volumes/Data/Projects/moneydance fix/statement20130805.ofx'
tree = et.parse(datafile)
root = tree.getroot()
for stmtrn in root.iter('STMTTRN'):
amount = stmtrn.find('TRNAMT').text
date = stmtrn.find('DTPOSTED').text
fitid = stmtrn.find('DTPOSTED').text
print "amount: ", (amount.split('.')[0])[1:]
amount = (amount.split('.')[0])[1:]
fitid.text = (date + amount).ljust(12,'0')
print 'New fitid: ', fitid
tree.write(datafile+'new')
당신이 코드의 출력을 보여줄 수 :
이 코드를 시도? –