pretty_print в etree.tostring () xml python - PullRequest
7 голосов
/ 08 марта 2012

Я пытаюсь распечатать документ XML с параметром pretty_print.Но это ошибка

TypeError: tostring () получил неожиданный аргумент ключевого слова 'pretty_print'

Я что-то здесь упустил?

def CreateXML2():
    Date = etree.Element("Date", value=time.strftime(time_format, time.localtime()));
    UserNode = etree.SubElement(Date, "User");
    IDNode = etree.SubElement(UserNode, "ID");
    print(etree.tostring(Date, pretty_print=True));

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

Кажется, проблема в том, что библиотека ElementTree не поддерживает красивую печать.Обходной путь, как объяснено здесь , заключается в повторном анализе строки вывода из ElementTree в другой библиотеке, которая обеспечивает поддержку красивой печати. ​​

1 голос
/ 08 марта 2012

Вы смотрели на это сообщение в StackOverflow?Я думаю, что он охватывает то, что вы хотите:

на месте форматировщик prettyprint

def indent(elem, level=0):
    i = "\n" + level*"  "
    if len(elem):
        if not elem.text or not elem.text.strip():
            elem.text = i + "  "
        if not elem.tail or not elem.tail.strip():
            elem.tail = i
        for elem in elem:
            indent(elem, level+1)
        if not elem.tail or not elem.tail.strip():
            elem.tail = i
    else:
        if level and (not elem.tail or not elem.tail.strip()):
            elem.tail = i

Этот пример кода был из поста и effbot.org

Кроме того, для получения дополнительной информации вы неправильно вызываете метод tostring ().Посмотрите веб-сайт Python для получения дополнительной информации.

...