缺少python xml版本

时间:2014-08-23 04:30:44

标签: 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 个答案:

答案 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')