Часто при работе с 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 в удобочитаемом виде, что значительно упрощает работу с ним.
Добавить комментарий