Автор оригинала: 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
автоматически преобразуется в ссылку на сущность &
.