it-source

xml.etree를 사용합니다.요소형식이 양호한 xml 파일을 인쇄할 트리

criticalcode 2023. 9. 13. 22:41
반응형

xml.etree를 사용합니다.요소형식이 양호한 xml 파일을 인쇄할 트리

사용하려고 합니다.xml.etree.ElementTree파이썬으로 xml 파일을 쓸 수 있습니다.문제는 그들이 한 줄로 계속 생성된다는 것입니다.저는 그것들을 쉽게 참조할 수 있기를 원하기 때문에 가능하다면 파일을 깨끗하게 작성하고 싶습니다.

이것이 제가 얻는 것입니다.

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

이것이 제가 보고 싶은 것입니다.

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

의 기능을 사용하여 다음 작업을 수행할 수 있습니다.

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")

이 아이디어는 당신의 것을 인쇄하는 것입니다.Element문자열에서 minidom을 사용하여 구문 분석하고 XML에서 다시 변환합니다.toprettyxml기능.

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

ElementTree의 상위 집합인 lxml 라이브러리를 사용할 수 있습니다(이제 상위 수준 링크는 스팸입니다).tostring() 메서드에는 매개 변수 pretty_print가 포함되어 있습니다.

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

언급URL : https://stackoverflow.com/questions/17402323/use-xml-etree-elementtree-to-print-nicely-formatted-xml-files

반응형