SeouliteLab

[Python/파이썬] XML 생성 및 파일 저장 본문

프로그래밍

[Python/파이썬] XML 생성 및 파일 저장

Seoulite Lab 2024. 3. 4. 08:36

Python을 사용하여 XML 파일을 생성하고 저장하는 방법에 대해 알아보겠습니다. XML은 데이터를 계층적으로 구조화하여 저장하는 데 사용되는 텍스트 기반의 파일 형식입니다. 아래 예제를 통해 XML을 생성하고 파일로 저장하는 방법을 살펴보겠습니다.

1. ElementTree 모듈 사용

Python의 ElementTree 모듈을 사용하여 XML을 생성하고 파일로 저장할 수 있습니다. 먼저 XML의 요소를 생성하고 이를 트리로 구성한 다음, ElementTreewrite() 메서드를 사용하여 파일로 저장합니다.

import xml.etree.ElementTree as ET

# 루트 요소 생성
root = ET.Element("employees")

# 하위 요소 추가
employee1 = ET.SubElement(root, "employee")
employee1.set("id", "001")
name1 = ET.SubElement(employee1, "name")
name1.text = "John Doe"
age1 = ET.SubElement(employee1, "age")
age1.text = "30"

employee2 = ET.SubElement(root, "employee")
employee2.set("id", "002")
name2 = ET.SubElement(employee2, "name")
name2.text = "Jane Smith"
age2 = ET.SubElement(employee2, "age")
age2.text = "35"

# XML 파일로 저장
tree = ET.ElementTree(root)
tree.write("employees.xml")

2. xml.dom.minidom 모듈 사용

또 다른 방법으로는 xml.dom.minidom 모듈을 사용하여 XML을 생성하고 파일로 저장할 수 있습니다. 이 방법은 좀 더 세부적인 제어가 필요한 경우에 유용합니다.

import xml.dom.minidom

# XML 문서 생성
doc = xml.dom.minidom.Document()

# 루트 요소 생성
root = doc.createElement("employees")
doc.appendChild(root)

# 하위 요소 추가
employee1 = doc.createElement("employee")
employee1.setAttribute("id", "001")
root.appendChild(employee1)

name1 = doc.createElement("name")
name1.appendChild(doc.createTextNode("John Doe"))
employee1.appendChild(name1)

age1 = doc.createElement("age")
age1.appendChild(doc.createTextNode("30"))
employee1.appendChild(age1)

employee2 = doc.createElement("employee")
employee2.setAttribute("id", "002")
root.appendChild(employee2)

name2 = doc.createElement("name")
name2.appendChild(doc.createTextNode("Jane Smith"))
employee2.appendChild(name2)

age2 = doc.createElement("age")
age2.appendChild(doc.createTextNode("35"))
employee2.appendChild(age2)

# XML 파일로 저장
with open("employees.xml", "w") as f:
    f.write(doc.toprettyxml(indent="    "))