- XML은 다목적 마크업 언어(Extensible Markup Language)이다
- 마크업 언어는 태그로 이루어진 언어를 말하며, 상위태그 - 하위태그의 계층적 구조로 이루어져 있다.
- XML은 요소(Element)들로 이루어져 있다.
- 요소는 <열린 태그> 내용 </닫힌 태그>가 기본적인 구조이며, 속성 값을 가질 수 있다.
XML 파일 만들기
- ElementTree : 파이썬 표준 라이브러리로서 XML관련 기능 제공
- Element() : 태그 생성
- SubElement() : 자식 태그 생성
- tag : 태그 이름
- text : 텍스트 내용 생성
- attrib : 속성 생성
- dump() : 생성된 XML 요소 구조를 시스템에 사용
import xml.etree.ElementTree as ET
person = ET.Element("Person")
name = ET.Element("Name")
name.text = '강민'
person.append(name)
age = ET.Element("age")
age.text = "29"
person.append(age)
ET.SubElement(person, 'place').text = '강남'
ET.dump(person)
>> <Person><name>강민</name><age>28</age><place>강남</place></Person>
속성 값 및 태그명 변경 가능
person.attrib['id'] = '0x0001'
name.tag = 'firstname'
ET.dump(person)
>> <Person id="0x0001"><firstname>강민</firstname><age>28</age><place>강남</place></Person>
새로운 태그 삽입, 속성 추가
lastname.text = '어'
person.insert(1, lastname)
ET.dump(person)
>> <Person id="0x0001"><firstname>강민</firstname><lastname date="2020-02-21">어</lastname><lastname date="2020-03-20">아</lastname><age>28</age><place>강남</place></Person>lastname = ET.Element('lastname', date = '2020-02-21')
추가 기능
# 삭제
person.remove(age)
# 저장
ET.ElementTree(person).write('person.xml')
XML 파싱하기
파싱(parsing, 구문 분석) : 어떤 문자열을 의미있는 토큰으로 분해해, 문법적 의미와 구조를 반영한 파스트리(parse tree)를 만드는 과정
from bs4 import BeautifulSoup
import os
path = os.getenv("HOME") + "/home/ftext/data/books.xml"
with open(path, "r", encoding='utf8') as f:
booksxml = f.read()
soup = BeautifulSoup(booksxml,'lxml')
#- BeautifulSoup 객체 생성 : lxml parser를 이용해 데이터 분석
for title in soup.find_all('title'):
#- 태그를 찾는 find_all 함수 이용
print(title.get_text())
'Aiffel > Fundamental' 카테고리의 다른 글
파이썬의 특징 (0) | 2021.12.30 |
---|---|
JSON 파일 (0) | 2021.12.29 |
파이썬 모듈 및 패키지 개념 정리 (0) | 2021.12.29 |
정규표현식 (0) | 2021.12.29 |
Markdown 작성하기 (0) | 2021.12.28 |
댓글