我正在使用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版本
答案 0 :(得分:2)
The default option for write
is actually:
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')