2017-06-02 13:40:35 -05:00
|
|
|
def clean_xml_indentation(element, level=0, spaces_per_level=2):
|
2015-04-16 12:35:37 -05:00
|
|
|
"""
|
2014-10-23 22:31:55 -04:00
|
|
|
copy and paste from http://effbot.org/zone/elementent-lib.htm#prettyprint
|
|
|
|
|
it basically walks your tree and adds spaces and newlines so the tree is
|
|
|
|
|
printed in a nice way
|
2015-04-16 12:35:37 -05:00
|
|
|
"""
|
2014-10-13 07:48:28 -04:00
|
|
|
|
2016-11-18 06:52:21 -06:00
|
|
|
i = "\n" + level*spaces_per_level*" "
|
2014-10-13 07:48:28 -04:00
|
|
|
|
2014-10-23 22:31:55 -04:00
|
|
|
if len(element):
|
2014-10-13 07:48:28 -04:00
|
|
|
|
2014-10-23 22:31:55 -04:00
|
|
|
if not element.text or not element.text.strip():
|
2016-11-18 06:52:21 -06:00
|
|
|
element.text = i + spaces_per_level*" "
|
2014-10-13 07:48:28 -04:00
|
|
|
|
2014-10-23 22:31:55 -04:00
|
|
|
if not element.tail or not element.tail.strip():
|
|
|
|
|
element.tail = i
|
2014-10-13 07:48:28 -04:00
|
|
|
|
2015-08-13 20:51:27 -06:00
|
|
|
for sub_element in element:
|
2016-11-18 06:52:21 -06:00
|
|
|
clean_xml_indentation(sub_element, level+1, spaces_per_level)
|
2014-10-13 07:48:28 -04:00
|
|
|
|
2015-08-13 20:51:27 -06:00
|
|
|
if not sub_element.tail or not sub_element.tail.strip():
|
|
|
|
|
sub_element.tail = i
|
2014-10-13 07:48:28 -04:00
|
|
|
|
2014-10-23 22:31:55 -04:00
|
|
|
else:
|
|
|
|
|
if level and (not element.tail or not element.tail.strip()):
|
2015-04-16 12:28:04 -05:00
|
|
|
element.tail = i
|