반응형
Python에서 xml 형식으로 된 파일의 데이터에서 원하는 정보를 추출하는 방법을
예시를 통하여 간략하게 정리해보도록 하겠습니다.
기본 예제
다음과 같은 XML 파일이 sample.xml 파일로 저장되어 있다고 가정해보도록 하겠습니다.
<root>
<child1>
<subchild1>data1</subchild1>
</child1>
<child2>
<subchild2>data2</subchild2>
</child2>
</root>
이 파일에서 각 값들을 추출하는 파이썬 코드 예시는 다음과 같습니다.
import xml.etree.ElementTree as ET
tree = ET.parse('sample.xml')
root = tree.getroot()
print(f'Root element: {root.tag}')
for child in root:
print(f'Child element: {child.tag}')
for subchild in child:
print(f'Subchild element: {subchild.tag}, Value: {subchild.text}')
출력 결과는 다음과 같습니다.
Root element: root
Child element: child1
Subchild element: subchild1, Value: data1
Child element: child2
Subchild element: subchild2, Value: data2
심화 예제
이번에는 좀 더 복잡한 XML 파일로 아래와 같은 books.xml 파일을 예시로 들어보겠습니다.
<books>
<book id="1">
<title>Python Programming</title>
<author>Jimmy</author>
<year>2020</year>
<publisher>
<name>Tech Books Publishing</name>
<address>
<city>Seoul</city>
<zip>12345</zip>
</address>
</publisher>
</book>
<book id="2">
<title>Advanced Python</title>
<author>Kevin</author>
<year>2021</year>
<publisher>
<name>Pro Coding Press</name>
<address>
<city>Incheon</city>
<zip>67890</zip>
</address>
</publisher>
</book>
</books>
다음과 같은 파이썬 코드 예시로 각 책에 대한 정보들을 추출해볼 수 있습니다.
import xml.etree.ElementTree as ET
tree = ET.parse('books.xml')
root = tree.getroot()
print(f'Root element: {root.tag}')
for book in root.findall('book'):
book_id = book.get('id')
title = book.find('title').text
author = book.find('author').text
year = book.find('year').text
publisher_name = book.find('publisher/name').text
publisher_city = book.find('publisher/address/city').text
publisher_zip = book.find('publisher/address/zip').text
print(f'Book ID: {book_id}')
print(f' Title: {title}')
print(f' Author: {author}')
print(f' Year: {year}')
print(f' Publisher: {publisher_name}')
print(f' Address: {publisher_city}, {publisher_zip}')
출력된 결과는 다음과 같습니다.
Root element: books
Book ID: 1
Title: Python Programming
Author: Jimmy
Year: 2020
Publisher: Tech Books Publishing
Address: Seoul, 12345
Book ID: 2
Title: Advanced Python
Author: Kevin
Year: 2021
Publisher: Pro Coding Press
Address: Incheon, 67890
'Python > Utils' 카테고리의 다른 글
파이썬 unique id(고유 식별자) 생성 방법: uuid (0) | 2024.07.05 |
---|---|
파이썬 데이터 유효성 검증 모듈 pydantic 사용법 정리 (0) | 2024.06.05 |
파이썬에서 값 암호화 해싱 및 검증 방법(bcrypt 모듈) (0) | 2024.05.02 |