반응형
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
반응형
'programing' 카테고리의 다른 글
| R에서 두 목록 병합 (0) | 2023.10.02 |
|---|---|
| Responsive 메뉴로 신체 스크롤 방지 방법 (0) | 2023.10.02 |
| 오류 2003(HY000):MySQL 서버에 연결할 수 없음 (111) (0) | 2023.10.02 |
| 각도 : ng-if 지시로 조건을 표현하는 방법? (0) | 2023.10.02 |
| 스프링 부츠 테스트 "형식의 적격 빈 사용 불가" (0) | 2023.10.02 |