Python缺少XML版本
我正在用Python处理XML文件,想要更新一些XML数据。
我遇到了一个小问题,当我更新XML时,它没有写入XML版本。
这是我的代码:
import xml.etree.ElementTree as ET
tree = ET.parse(r'c:\users\g\desktop\IT_ADMINVersionTrack.xml')
root = tree.getroot()
for country in root.findall('dtModule'):
f = country.find('FolderName').text
print "FOLDER:",f
v = country.find('Version').text
print "OLD VERSION:",v
if v == "11.0":
country.find('Version').text = "12.0"
v2 = country.find('Version').text
print "NEW VERSION",v2
else:
print "NO CHANGE IN VERSION"
tree.write(r'c:\users\g\desktop\output.xml')
输入的XML内容:
<?xml version="1.0"?>
<dsModule>
<dtModule>
<ModuleName>IT_ADMIN</ModuleName>
<Version>11.0</Version>
<FolderName>IT_ADMIN\ItDataCompInterface.dll.gz</FolderName>
<Type>P</Type>
<ClientId />
<Destination />
</dtModule>
</dsModule>
输出的XML内容:
<dsModule>
<dtModule>
<ModuleName>IT_ADMIN</ModuleName>
<Version>12.0</Version>
<FolderName>IT_ADMIN\ItDataCompInterface.dll.gz</FolderName>
<Type>P</Type>
<ClientId />
<Destination />
</dtModule>
</dsModule>
XML版本缺失了。
1 个回答
3
write(file, encoding="us-ascii", xml_declaration=None, default_namespace=None, method="xml")
不过,这样做还是会有问题,因为某些版本的xml.etree
需要你提供编码。因此,为了让XML版本在输出文件中可见,你的最后一行代码应该是:
tree.write('output.xml', xml_declaration=True, method='xml', encoding='UTF-8')