XML에서 tostring 메서드를 사용하여 XML의 "예쁜"버전을 문자열로 얻으려고합니다. lxml 사이트의 예는 다음 예를 보여줍니다.
>>> import lxml.etree as etree
>>> root = etree.Element("root")
>>> print(root.tag)
root
>>> root.append( etree.Element("child1") )
>>> child2 = etree.SubElement(root, "child2")
>>> child3 = etree.SubElement(root, "child3")
>>> print(etree.tostring(root, pretty_print=True))
<root>
<child1/>
<child2/>
<child3/>
</root>
그러나 내 출력은 정확한 줄을 실행하는 것입니다.
b'<root>\n <child1/>\n <child2/>\n <child3/>\n</root>\n'
내가 설치 한 lxml 버전에 버그가 있습니까? 튜토리얼의 단어 예제가 작동하지 않는 것이 이상합니다.
b
그것이 있다고 문자열 쇼 당신의 앞에 플래그 바이트 문자열 . 이를 유니 코드 문자열 (Python 문자열의 일반적인 인코딩)으로 인쇄하려면 다음을 수행 할 수 있습니다.
print(etree.tostring(root,pretty_print=True).decode())
또는 etree.tostring
인코딩을 설정할 수있는 플래그가 있으므로 :
print(etree.tostring(root,pretty_print=True,encoding='unicode'))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다