programing

Python에서 lxml 라이브러리를 사용하여 xml 파일 쓰기

jooyons 2023. 10. 2. 14:59
반응형

Python에서 lxml 라이브러리를 사용하여 xml 파일 쓰기

저는 lxml을 사용하여 처음부터 XML 파일을 만들고 있습니다. 다음과 같은 코드가 있습니다.

from lxml import etree

root = etree.Element("root")
root.set("interesting", "somewhat")
child1 = etree.SubElement(root, "test")

루트를 쓰는 방법Element개체:xml 파일에 사용write()의 방법ElementTree수업?

요소에서 문자열을 가져온 다음 lxml 튜토리얼에서 작성할 수 있습니다.

str = etree.tostring(root, pretty_print=True)

인코딩을 설정하려면 tostring 문서를 살펴보십시오. 이것은 Python 2로 작성되었으며, Python 3은 파일에 직접 쓸 수 있지만 코드에서 원하는 것이 아닐 수 있는 이진 문자열을 반환합니다.

또는 요소 트리로 변환합니다(원래는 파일 핸들에 쓰지만 이 내용을 쓸 때 놓쳤거나 새 내용인 경우 파일 이름이 될 수 있습니다.)

et = etree.ElementTree(root)
et.write('output.xml', pretty_print=True)

아래 코드를 사용해보실 수 있습니다.

from lxml import etree as ET

root = ET.Element('Doc')
level1 = ET.SubElement(root, 'S')
main = ET.SubElement(level1, 'Text')
main.text = 'Thanks for contributing an answer to Stack Overflow!'
second = ET.SubElement(level1, 'Tokens')
level2 = ET.SubElement(second, 'Token', word=u"low")


level3 = ET.SubElement(level2, 'Morph')
second1 = ET.SubElement(level3, 'Lemma')
second1.text = 'sdfs'
second1 = ET.SubElement(level3, 'info')
second1.text = 'qw'

level4 = ET.SubElement(level3, 'Aff')
second1 = ET.SubElement(level4, 'Type')
second1.text = 'sdfs'
second1 = ET.SubElement(level4, 'Suf')
second1.text = 'qw'

tree = ET.ElementTree(root)
tree.write('output.xml', pretty_print=True, xml_declaration=True,   encoding="utf-8")

여기 간결한 대답이 있습니다.

from lxml import etree

root = etree.Element("root")
root.set("interesting", "somewhat")
child1 = etree.SubElement(root, "test")

my_tree = etree.ElementTree(root)
with open('./filename', 'wb') as f:
    f.write(etree.tostring(my_tree))

노드를 새 트리에 배치하고 디스크에 쓰기만 하면 됩니다.또한 사용할 수HtmlElementsxpath 검색을 통해 생성됩니다.

이것은 저에게 효과가 있습니다.

et = etree.ElementTree(document)
with open('sample.xml', 'wb') as f:
    et.write(f, encoding="utf-8", xml_declaration=True, pretty_print=True)

파일 이름을 다음과 같이 지정할 수 있습니다.write()요소의나무

etree.ElementTree(root).write('output.xml')

언급URL : https://stackoverflow.com/questions/2833185/write-xml-file-using-lxml-library-in-python

반응형