2016-06-24 4 views
-1

Используя Python 3.4 и ElementTree, я пытаюсь добавить подэлемент в xml-файл, сохраняя xml-файл (написанный в UTF-16) в противном случае точно таким же.Сохранение пустых элементов при разборе с помощью ElementTree

Мой код:

new = new_XML_file.xml 
tree = ET.parse(new) 
root = tree.getroot() 
new_element = ET.SubElement(root, 'RENAMED_SOUND_FILE') 
new_element.text=new.split('\\')[num][:-4]+'.wav' 
tree.write(fake_path++new.split('\\')[num], encoding='utf-16', xml_declaration=True) 

Проблема у меня в том, что пустые элементы меняются в этом процессе. Например:

<EMPTY_ELEMENT></EMPTY_ELEMENT> 

становится:

<EMPTY_ELEMENT /> 

Я знаю, что к машине, это в основном то же самое, но я хотел бы сохранить ранее форматирования для целей тестирования.

Любые идеи о том, как я могу сохранить полные пустые элементы?

ответ

0

В методах вывода (используя методы tostring или write) есть ключевое слово short_empty_elements, которое по умолчанию имеет значение True. Создание этого False должно дать вам желаемый результат:

import xml.etree.ElementTree as ET 

root=ET.Element("root") 
print(ET.tostring(root,short_empty_elements=False)) 
+0

Спасибо! Это сработало! – jsamsf

 Смежные вопросы

  • Нет связанных вопросов^_^