Python 3.9+xml.etree.ElementTreeфункция
xml.etree.ElementTree.indent()
сериализация
Расставляет переносы и отступы в дереве на месте, чтобы tostring() и write() дали читаемый XML. Ничего не возвращает.
Синтаксис
ET.indent(tree, space=' ', level=0)
indent() меняет само дерево — дописывает пробельные text и tail — и возвращает None, так что print(ET.indent(root)) напечатает None. После него в text появляются строки из пробелов: если дерево дальше обрабатывается, а не только выводится, это ловушка. Существующие отступы перезаписываются, поэтому повторный вызов безопасен. До 3.9 функции не было — встречаются самодельные рецепты с minidom.
Примеры
import xml.etree.ElementTree as ET
root = ET.fromstring('<a><b><c/></b></a>')
print(ET.indent(root)) # → None
print(ET.tostring(root, encoding='unicode'))
# → <a> / <b> / <c /> / </b> / </a>
print(repr(root.text)) # → '\n '
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности