read library example etree dict create python xml elementtree

python - library - Utilice xml.etree.elementtree para imprimir archivos XML con buen formato



xml python 3 (2)

Puede usar la biblioteca lxml , que es un superconjunto de ElementTree. Su método tostring () incluye un parámetro pretty_print , por ejemplo:

>>> print(etree.tostring(root, pretty_print=True)) <root> <child1/> <child2/> <child3/> </root>

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de usar xml.etree.elementtree para escribir archivos xml con Python. El problema es que se siguen generando en una sola línea. Quiero poder referenciarlos fácilmente, así que si es posible, me gustaría poder escribirlos de forma clara.

Esto es lo que estoy recibiendo

<Language><En><Port>Port</Port><UserName>UserName</UserName></En><Ch><Port>IP地址</Port><UserName>用户名称</UserName></Ch></Language>

Esto es lo que me gustaría ver.

<Language> <En> <Port>Port</Port> <UserName>UserName</UserName> </En> <Ch> <Port>IP地址</Port> <UserName>用户名称</UserName> </Ch> </Language>


Puede usar la función toprettyxml() de xml.dom.minidom para hacer eso:

def prettify(elem): """Return a pretty-printed XML string for the Element. """ rough_string = ElementTree.tostring(elem, ''utf-8'') reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent="/t")

La idea es imprimir su Element en una cadena, analizarlo con minidom y convertirlo nuevamente en XML utilizando la función toprettyxml .

Fuente: http://pymotw.com/2/xml/etree/ElementTree/create.html