• XML Python хэх, почему же в ElementTree нельзя было сделать культурный вывод, так видимо и придется пользоваться этим страхом для выравнивания
    from xml.minidom import parseString
    from xml.etree import ElementTree

    def prettyPrint(element):
    txt = ElementTree.tostring(element)
    print minidom.parseString(txt).toprettyxml()
  • да еще и местный движок отступы съедает, ужас
  • кто мешает скопировать toprettyxml в ElementTree?
  • @Peter, в смысле из исходников minidom'а?
  • @yk, есессно
  • @Peter, наверное лень), но мб так и поступлю, спасибо
  • @yk, нп. но грамотным выходом было бы добавление своего пакета в site-packages, где унаследоваться от ElementTree и добавить 1 метод toprettyxml. В таком случае, вы во всех проектах сможете использовать удобный для вас вызов и оставите чужие библиотеки нетронутыми, что поможет при переносе кода на другой компьютер.
  • вот тоже решение)
    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
  • @Peter, переносить то особо нечего, так, пара вспомогательных скриптов