ElementTree 정리 및 사용법 XML
파이썬 XML ElementTree
ElementTree는 파이썬에서 2.5? 버전부터 내부라이브러리 포함되어
따로 설치 않아도 됩니다.
XML을 다룰때 많이 사용되며
사용법도 간단합니다.
공식 문서는 https://docs.python.org/2/library/xml.etree.elementtree.html
아래는 샘플 코드입니다.
import xml.etree.ElementTree as ET
xml = """<?xml version = "1.0" encoding = "UTF-8" ?>
<root>
<sub rank="1" id="apple" price="120" u="up">애플
<desc name="ipod">아이팟</desc>
<desc name="phone">아이폰</desc>
</sub>
<sub rank="2" id="tsla" price="820" u="up">테슬라</sub>
<sub rank="3" id="msft" price="233" u="down">마소</sub>
</root>
"""
r = ET.fromstring(xml)
print("=========root 하위 find사용 직접 꺼내기=========")
print(r.find('sub').get('rank'))
print(r.find('sub')[0].get('name'))
print(r.find('sub')[1].text)
print(r[0].text)
print("=========root 하위 get 직접꺼내기=========")
print(r[1].get("rank"))
print(r[1].get("id"))
print(r[1].get("price"))
print(r[1].text)
print("=========root 하위 get 반복문=========")
for tag in r:
print(tag.get("rank"))
print(tag.get("id"))
print(tag.get("price"))
print(tag.text)
if len(tag) > 0:
print(",".join(v.get("name") for v in tag))
결과:
=========root 하위 find사용 직접 꺼내기=========
1
ipod
아이폰
애플
=========root 하위 get 직접꺼내기=========
2
tsla
820
테슬라
=========root 하위 get 반복문=========
1
apple
120
애플
ipod,phone
2
tsla
820
테슬라
3
msft
233
마소
find 와 get
기능 | 설명 |
---|---|
find() | 태그를 찾을 때 |
get() | 속성을 찾을 때 ※상위 태그와 상관없이 속성명으로 바로 찾을 수 있습니다. |
text | 태그사이의 문자열을 출력합니다. |
위 소스에서 r은 (
r.find('sub')는 root>sub 태그 전체를 가져옵니다.(3개))
r.find('sub').get('rank')는 sub 태그 전체 중 첫번째 rank를 가져옵니다.
위 소스에서 get(), find()를 이해한다면
데이터를 가져오는데 큰 어려움은 없을거 같습니다.^^
TAG: #ElementTree #ET #xml
Comments
Login: