728x90
from xml.etree.ElementTree import Element,SubElement, dump
note = Element("note")
to = Element("to")
to.text = "Tove"
note.append(to)
dump(note) #<note><to>Tove</to></note>
파이썬을 통해서 위 코드와 같이 XML을 만들 수 있다.
from xml.etree.ElementTree import Element,SubElement, dump
note = Element("note")
to = Element("to")
to.text = "Tove"
note.append(to)
SubElement(note,'from').text = "Jani"
dump(note) # <note><to>Tove</to><from>Jani</from></note>
또한 아래 코드와 같이 태그를 사입하고 삭제 할 수 있다.
from xml.etree.ElementTree import Element,SubElement, dump
note = Element("note")
to = Element("to")
to.text = "Tove"
note.append(to)
SubElement(note,'from').text = "Jani"
dummy = Element("dummy")
note.insert(1,dummy)
dump(note) # <note><to>Tove</to><dummy /><from>Jani</from></note>
note.remove(dummy)
dump(note) # <note><to>Tove</to><from>Jani</from></note>
from xml.etree.ElementTree import Element,SubElement, dump
note = Element("note")
to = Element("to")
to.text = "Tove"
note.append(to)
SubElement(note,'from').text = "Jani"
note.attrib["date"] = "20200411"
# == note = Element("note",date = "20200411")
dump(note) # <note date="20200412"><to>Tove</to><from>Jani</from></note>
또 위 코드와 같이 xml에 attribute 값을 넣을 수 있다.
from xml.etree.ElementTree import Element,SubElement, dump
note = Element("note")
note.attrib["date"] = "20200411"
to = Element("to")
to.text = "Tove"
note.append(to)
SubElement(note,"from").text = "Jani"
SubElement(note,"heading").text = "Reminder"
SubElement(note,"body").text = "Don't forget me this weekend"
dump(note)
"""
<note date="20200411">
<to>
Tove
</to>
<from>
Jani
</from>
<heading>
Reminder
</heading>
<body>
Don't forget me this weekend
</body>
</note>
"""
이후에
from xml.etree.ElementTree import ElementTree
ElementTree(note).write("note.xml")
을 더해주면 note.xml 파일이 추가됨을 알 수 있다.
XML 파싱
사실 파싱은 정말 많이 쓰이니 자세히 알아두자.
from xml.etree.ElementTree import parse
tree =parse("note.xml")
note = tree.getroot()
print(note.get("date"))
print(note.get("foo","default"))
print(note.keys())
print(note.items())
"""
20200411
default
['date']
[('date', '20200411')]
"""
xml 태그 접근하기
from xml.etree.ElementTree import parse
tree =parse("note.xml")
note = tree.getroot()
from_tag = note.find("from")
from_tags = note.findall("from")
from_text = note.findtext("from")
print(from_tag,from_tags,from_text)
#<Element 'from' at 0x0000027EA489C130> [<Element 'from' at 0x0000027EA489C130>] Jani
위와 같이 5번줄은 태그를 리턴하고 6번줄은 태그를 리스트로 리턴하고 7번째줄은 일치하는 텍스트를 반환한다.
728x90
'Programming > Python' 카테고리의 다른 글
[Python/파이썬] PriorityQueue & heapq / 우선순위큐와 힙큐 (0) | 2021.08.26 |
---|---|
[Python/파이썬]함수로 정렬하기(소스만) (0) | 2021.08.22 |
[Python/파이썬]정규 표현식(심화) (0) | 2020.04.11 |
[Python/파이썬]정규표현식 (0) | 2020.04.11 |
[Python/파이썬]내장함수 & 외장함수 (0) | 2020.04.09 |