[PYTHON] xml.etree.elementtree를 사용하여 서식있는 XML 파일을 인쇄하십시오 [duplicate]
PYTHONxml.etree.elementtree를 사용하여 서식있는 XML 파일을 인쇄하십시오 [duplicate]
xml.etree.elementtree를 사용하여 Python으로 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>
해결법
-
==============================
1.xml.dom.minidom의 toprettyxml () 함수를 사용하면 다음과 같이 할 수 있습니다.
xml.dom.minidom의 toprettyxml () 함수를 사용하면 다음과 같이 할 수 있습니다.
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")
아이디어는 문자열에 요소를 인쇄하고, minidom을 사용하여 구문 분석 한 다음 toprettyxml 함수를 사용하여 XML로 다시 변환하는 것입니다.
출처 : http://pymotw.com/2/xml/etree/ElementTree/create.html
-
==============================
2.ElementTree의 상위 집합 인 라이브러리 lxml을 사용할 수 있습니다. 그 tostring () 메소드는 pretty_print 매개 변수를 포함합니다. 예를 들면 다음과 같습니다.
ElementTree의 상위 집합 인 라이브러리 lxml을 사용할 수 있습니다. 그 tostring () 메소드는 pretty_print 매개 변수를 포함합니다. 예를 들면 다음과 같습니다.
>>> print(etree.tostring(root, pretty_print=True)) <root> <child1/> <child2/> <child3/> </root>
from https://stackoverflow.com/questions/17402323/use-xml-etree-elementtree-to-print-nicely-formatted-xml-files by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] html 페이지와 그 내용을 다운로드하십시오. (0) | 2018.10.29 |
---|---|
[PYTHON] 어떻게하면 파이썬 "플랫폼 독립 라이브러리 <prefix>를 찾을 수 없습니까"문제를 해결할 수 있습니까? (0) | 2018.10.29 |
[PYTHON] 파이썬에서 UTC 시간을 얻는 방법? (0) | 2018.10.29 |
[PYTHON] 파이썬 문자열에서 빈 줄을 제거하는 빠른 일렬 라이너 란 무엇입니까? (0) | 2018.10.29 |
[PYTHON] WHERE를 사용하여 SQLAlchemy Core의 일괄 업데이트 (0) | 2018.10.29 |