Just Started
Just Started

Reputation: 17

no modifications in XML file after running python code

I wrote a code that must modify some values in a xml file. it looks to be working, but when i open this xml file threw PyCharm where i have added the modified file, it just doesn't change a thing. If anyone gave a respond to such a question, please point me where is it. Here is the code as well as the xml.

import xml.etree.ElementTree as ET
tree = ET.parse("farms.xml")
root = tree.getroot()
for elem in root.findall('farm'):
    elem.set('money', '2000')
    money = elem.get('money')
    print(money)

xml

<farms>
  <farm farmId="1" name="Моя ферма" color="1" loan="0.000000" money="213" loanAnnualInterestRate="304.166656">
  <players>
  </players>       
 </farm>
</farms>

Upvotes: 0

Views: 237

Answers (2)

balderman
balderman

Reputation: 23825

What you are missing is writing the tree back to disk.

import xml.etree.ElementTree as ET

tree = ET.parse("farms.xml")
root = tree.getroot()
for elem in root.findall('farm'):
    elem.set('money', '2000')
with open('new_farms.xml', 'wb') as f:
    tree.write(f)

Upvotes: 1

ghchoi
ghchoi

Reputation: 5166

It works for me. Additionally,

print(xml.etree.ElementTree.tostring(root))

will show what you expect.

Upvotes: 0

Related Questions