Python pretty XML printer with lxml

前端 未结 5 575
一整个雨季
一整个雨季 2020-11-28 09:37

After reading from an existing file with \'ugly\' XML and doing some modifications, pretty printing doesn\'t work. I\'ve tried etree.write(FILE_NAME, pretty_print=True

5条回答
  •  孤街浪徒
    2020-11-28 10:07

    Here is an answer that is fixed to work with Python 3:

    from lxml import etree
    from sys import stdout
    from io import BytesIO
    
    parser = etree.XMLParser(remove_blank_text = True)
    file_obj = BytesIO(text)
    tree = etree.parse(file_obj, parser)
    tree.write(stdout.buffer, pretty_print = True)
    

    where text is the xml code as a sequence of bytes.

提交回复
热议问题