세상을 더 편리하게
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
profile

세상을 더 편리하게

@쵱니

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!