07 Июл 2023
2 мин
662

Красивый вывод XML в Python

Часто при работе с XML-файлами возникает необходимость их «красивого» вывода, так называемого pretty printing. Это особенно важно при отладке или при чтении

Содержание

Часто при работе с XML-файлами возникает необходимость их «красивого» вывода, так называемого pretty printing. Это особенно важно при отладке или при чтении XML-файлов человеком, так как такой формат вывода делает структуру XML более наглядной и удобной для восприятия.

Рассмотрим пример. Допустим, есть XML-файл с следующим содержимым:

<root><child>text</child><child_with_attr attr="value">text</child_with_attr></root>

Для человеческого взгляда этот файл сложно читать, поскольку все элементы идут слитно, без отступов и переносов строк.

В Python есть несколько способов красивого вывода XML. Одним из них является использование модулей xml.dom.minidom или xml.etree.ElementTree.

Использование xml.dom.minidom

Модуль xml.dom.minidom предоставляет метод parseString(), который считывает XML из строки. А метод toprettyxml() форматирует XML в удобочитаемый вид. Вот пример:

from xml.dom.minidom import parseString

xml = '<root><child>text</child><child_with_attr attr="value">text</child_with_attr></root>'
dom = parseString(xml)
pretty_xml = dom.toprettyxml()
print(pretty_xml)

Использование xml.etree.ElementTree

Модуль xml.etree.ElementTree предоставляет функцию parse(), которая считывает XML из файла или строки. А функция dump() выводит XML в красивом виде. Пример использования:

from xml.etree.ElementTree import ElementTree

xml = '<root><child>text</child><child_with_attr attr="value">text</child_with_attr></root>'
tree = ElementTree()
tree.parse(xml)
tree.dump()

Оба этих способа позволяют получить XML в удобочитаемом виде, что значительно упрощает работу с ним.

Содержание

Добавить комментарий

Определи профессию по рисунку