def etree_tostring(elem, indent='', max_lines=None, spaces_for_tab=4):
if PY3:
lines = ElementTree.tostring(elem, encoding="unicode").splitlines()
else:
# noinspection PyCompatibility
lines = unicode(ElementTree.tostring(elem)).splitlines()
while lines and not lines[-1].strip():
lines.pop(-1)
lines[-1] = ' %s' % lines[-1].strip()
if max_lines is not None:
if indent:
xml_text = '\n'.join([indent + line for line in lines[:max_lines]])
else:
xml_text = '\n'.join(lines[:max_lines])
if len(lines) > max_lines + 2:
xml_text += '\n%s ...\n%s%s' % (indent, indent, lines[-1])
elif len(lines) > max_lines:
xml_text += '\n%s%s\n%s%s' % (indent, lines[-2], indent, lines[-1])
elif indent:
xml_text = '\n'.join([indent + line for line in lines])
else:
xml_text = '\n'.join(lines)
return xml_text.replace('\t', ' ' * spaces_for_tab) if spaces_for_tab else xml_text
评论列表
文章目录