Рубрики
Без рубрики

Строительные документы с узлами элементов

Автор оригинала: Doug Hellmann.

Помимо возможностей синтаксического анализа, xml.etree.ElementTree также поддерживает создание правильно сформированных XML-документов из объектов Element , созданных в приложении. Класс Element , используемый при анализе документа, также знает, как создать сериализованную форму его содержимого, которое затем можно записать в файл или другой поток данных.

Есть три вспомогательные функции, полезные для создания иерархии узлов Element . Element () создает стандартный узел, SubElement () присоединяет новый узел к родительскому, а Comment () создает узел, который сериализует с использованием Синтаксис комментариев XML.

ElementTree_create.py

from xml.etree.ElementTree import (
    Element, SubElement, Comment, tostring,
)

top  Element('top')

comment  Comment('Generated for PyMOTW')
top.append(comment)

child  SubElement(top, 'child')
child.text  'This child contains text.'

child_with_tail  SubElement(top, 'child_with_tail')
child_with_tail.text  'This child has text.'
child_with_tail.tail  'And "tail" text.'

child_with_entity_ref  SubElement(top, 'child_with_entity_ref')
child_with_entity_ref.text  'This & that'

print(tostring(top))

Вывод содержит только узлы XML в дереве, но не объявление XML с версией и кодировкой.

$ python3 ElementTree_create.py

b'This child contains text.This child has text.And "ta
il" text.This & that'

Символ & в тексте child_with_entity_ref автоматически преобразуется в ссылку на сущность & .