SeouliteLab

[Python/파이썬] XML 파싱, 태그 또는 요소 별로 읽기 본문

프로그래밍

[Python/파이썬] XML 파싱, 태그 또는 요소 별로 읽기

Seoulite Lab 2024. 3. 4. 08:37

Python을 사용하여 XML 파일을 파싱하고, 태그 또는 요소를 별도로 읽어오는 방법에 대해 알아보겠습니다. XML은 데이터를 계층적으로 구조화하여 저장하는 데 사용되는 텍스트 기반의 파일 형식입니다. 아래 예제를 통해 XML을 파싱하고 태그 또는 요소를 별도로 읽어오는 방법을 살펴보겠습니다.

1. ElementTree 모듈 사용

Python의 ElementTree 모듈을 사용하여 XML을 파싱하고 태그 또는 요소를 읽어올 수 있습니다. 먼저 XML 파일을 열고 ElementTreeparse() 함수로 파싱한 다음, getroot() 메서드를 사용하여 XML의 루트 요소에 접근합니다. 그런 다음, find(), findall(), iter() 등의 메서드를 사용하여 특정 태그 또는 요소를 찾습니다.

import xml.etree.ElementTree as ET

# XML 파일 열기
tree = ET.parse('employees.xml')
root = tree.getroot()

# 특정 태그 또는 요소 찾기
# find() 메서드를 사용하여 첫 번째로 일치하는 태그 또는 요소를 반환합니다.
employee = root.find('employee')
print(employee.tag)  # 'employee'

# findall() 메서드를 사용하여 모든 일치하는 태그 또는 요소를 반환합니다.
employees = root.findall('employee')
for employee in employees:
    print(employee.find('name').text)

# iter() 메서드를 사용하여 모든 태그 또는 요소를 반복합니다.
for element in root.iter():
    print(element.tag)

2. xml.dom.minidom 모듈 사용

또 다른 방법으로는 xml.dom.minidom 모듈을 사용하여 XML을 파싱하고 태그 또는 요소를 읽어올 수 있습니다. 이 방법은 좀 더 세부적인 제어가 필요한 경우에 유용합니다.

import xml.dom.minidom

# XML 파일 열기
doc = xml.dom.minidom.parse('employees.xml')

# 특정 태그 또는 요소 찾기
# getElementsByTagName() 메서드를 사용하여 모든 일치하는 태그 또는 요소를 반환합니다.
employees = doc.getElementsByTagName('employee')
for employee in employees:
    names = employee.getElementsByTagName('name')
    for name in names:
        print(name.firstChild.nodeValue)

# 모든 요소 가져오기
elements = doc.getElementsByTagName('*')
for element in elements:
    print(element.tagName)