Уведомления

Группа в Telegram: @pythonsu

#1 Июль 20, 2014 22:26:10

Mepkypuo
Зарегистрирован: 2014-07-13
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

При использовании parseString атрибуты в XML сохраняются в изменённом порядке

Всем привет!
Подскажите, пожалуйста, как можно победить следующую проблему:
Есть XML.

<?xml version="1.0" encoding="utf-8"?>
  <Configuration>
     <Options MasterVolume="1.0" Quality="VeryLow" MaxWidth="1024" MaxHeight="768" Fullscreen="false"/>
  </Configuration>

Используя следующий метод при помощи xml.dom.minidom заменяю в XML любой атрибут:
    f = open('xml.xml', 'rt')
    data = parseString(f.read())
    f.close()
    target_element = data.getElementsByTagName('element')[0]
    target_element.setAttribute('id', 'new value')
    f = open(CLIENT_CONFIG, 'wt')
    f.write(data.toxml('utf-8'))
    f.close()

В результате последовательность атрибутов изменяется:

<?xml version="1.0" encoding="utf-8"?><Configuration>
     <Options Fullscreen="false" MasterVolume="1.0" MaxHeight="768" MaxWidth="1024" Quality="Low"/>
  </Configuration>

Подскажите, пожалуйста, если ли какой-нибудь способ сохранить исходное форматирование и порядок атрибутов и, если есть, укажите, пожалуйста, какой.
Буду премного благодарен!

Офлайн

#2 Июль 21, 2014 07:56:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

При использовании parseString атрибуты в XML сохраняются в изменённом порядке

Mepkypuo
если ли какой-нибудь способ сохранить исходное форматирование и порядок атрибутов

Придётся программировать. :)

def make_attr_order(elem1, elem2):
    pass



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version