Имеется xml конфиг-файл.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Cache>
<Index ID="DATE_INDEX">
<FieldName Name="id"/>
<FieldName Name="start_time"/>
<FieldName Name="stop_time"/>
</Index>
<Index ID="USER_INDEX">
<FieldName Name="id"/>
<FieldName Name="username"/>
</Index>
</Cache>
<Regions>
<Region ID="0" Folder="Unknown"/>
<Region ID="100" Folder="MSK"/>
<Region ID="200" Folder="SPB"/>
<Region ID="300" Folder="PTZ"/>
</Regions>
</Configuration>
для модификации файла (Изменения существующей записи) я использую:
config_file = 'config.xml'
xml_config = ET.parse(config_file)
root = xml_config.getroot()
root[1][1].attrib['Folder'] = 'Capital'
xml_config.write('out.xml')
Все работает отлично:
<Regions>
<Region Folder="Unknown" ID="0" />
<Region Folder="Capital" ID="100" />
<Region Folder="SPB" ID="200" />
<Region Folder="PTZ" ID="300" />
</Regions>
Для того чтоб добавить запись:
ET.SubElement(root[1], 'Region', {'Folder':"Ural", "ID":"400"})
но на выходе слетает редактирование:
Должно быть:
<Regions>
<Region Folder="Unknown" ID="0" />
<Region Folder="Capital" ID="100" />
<Region Folder="SPB" ID="200" />
<Region Folder="PTZ" ID="300" />
<Region Folder="Ural" ID="400" />
</Regions>
а получаю это:
<Regions>
<Region Folder="Unknown" ID="0" />
<Region Folder="Capital" ID="100" />
<Region Folder="SPB" ID="200" />
<Region Folder="PTZ" ID="300" />
<Region Folder="Ural" ID="400" /></Regions>
Как это можно исправить?