[파이썬] XML 파일의 파싱과 생성

XML (eXtensible Markup Language)은 데이터를 저장하고 전송하기 위한 마크업 언어입니다. 많은 프로그램과 플랫폼에서 XML 파일을 사용하는데, 파이썬을 사용하여 XML 파일을 파싱하고 생성하는 방법에 대해 알아보겠습니다.

XML 파일 파싱

XML 파일 파싱은 XML 문서에서 데이터를 추출하거나 문서 구조를 분석하는 과정입니다. 파이썬에서는 xml 모듈과 ElementTree 클래스를 사용하여 XML 파일을 파싱할 수 있습니다.

import xml.etree.ElementTree as ET

# XML 파일 로드
tree = ET.parse('example.xml')
root = tree.getroot()

# XML 데이터 추출
for child in root:
    print(child.tag, child.attrib)

# 특정 요소 접근
title = root.find('book/title')
print(title.text)

위 코드에서 ET.parse() 함수를 사용하여 XML 파일을 로드하고, getroot() 메소드로 루트 요소에 접근합니다. 그리고 root 요소의 자식 요소들을 반복문을 통해 접근하고 출력합니다. 특정 요소에 접근하기 위해 find() 메소드를 사용할 수 있습니다.

XML 파일 생성

XML 파일을 생성하는 과정은 파이썬에서 XML 트리를 만들고 이를 파일로 저장하는 것입니다. xml.dom 모듈을 사용하여 XML 요소를 만들고, toxml() 메소드를 사용하여 XML 파일로 저장할 수 있습니다.

from xml.dom import minidom

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

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

# 자식 요소 생성
book = doc.createElement('book')
title = doc.createElement('title')
title_text = doc.createTextNode('Python Programming')
title.appendChild(title_text)
book.appendChild(title)

# 루트에 자식 요소 추가
root.appendChild(book)

# XML 파일로 저장
xml_str = doc.toprettyxml(indent='\t')
with open('new.xml', 'w') as f:
    f.write(xml_str)

위 코드에서 minidom 모듈을 사용하여 XML 문서를 생성합니다. createElement() 메소드로 요소를 생성하고, createTextNode() 메소드로 텍스트 노드를 생성하여 요소에 추가합니다. 마지막으로 toprettyxml() 메소드와 write() 함수를 사용하여 XML 파일로 저장합니다.

이제 파이썬을 사용하여 XML 파일을 파싱하고 생성하는 방법을 알게 되었습니다. XML 파일의 구조를 이해하고 데이터를 추출하거나 생성하는 등의 작업을 위해 위의 코드를 참고하세요.