Python:xml.etree.ElementTree
Example
OPM의 Configure file을 읽기 위한 class 샘플은 아래와 같다.
class Config:
    def __init__(self):
        self.protocol = "ssh"
        self.user = "root"
        self.host = "127.0.0.1"
        self.port = "22"
        self.remote = "/var/opm"
        pass
    def read(self, filename = CONFIGPATH):
        try:
            doc = ET.parse(filename)
            root = doc.getroot()
            # check the root tag.
            if root.tag != TAG_ROOT or root.attrib[ATTR_VERSION] != MIN_VERSION:
                return False
            config = root.find(TAG_CONFIG)
            self.protocol = config.find(TAG_PROTOCOL).text
            self.user = config.find(TAG_USER).text
            self.host = config.find(TAG_HOST).text
            self.port = config.find(TAG_PORT).text
            self.remote = config.find(TAG_REMOTE).text
        except (ET.ParseError, AttributeError) as e:
            #print e.args[0]
            return False
        return True
    def get(self):
        return self.protocol + "://" + self.user + "@" + \
            self.host + ":" + self.port + self.remote
참고로 XML파일은 아래와 같다.
<?xml version="1.0" encoding="utf-8" ?>
<opm version="0.1">
    <config>
        <protocol>ssh</protocol>
        <user>root</user>
        <host>host.com</host>
        <port>22</port>
        <remote>/var/opm</remote>
    </config>
</opm>
Parsing a string
from xml.etree import ElementTree
tree = ElementTree.ElementTree(ElementTree.fromstring(<your_xml_string>))
to string
import xml.etree.ElementTree as ET
tag_root = ET.Element('root')
tag_root.set('attr', 'name')
tag_root.text = 'Content'
tag_child = ET.Element('child')
tag_child.set('attr', 'name')
tag_root.append(tag_child)
ET.tostring(tag_root)
Pretty printing XML
import xml.dom.minidom
xml = xml.dom.minidom.parse(xml_fname) # or xml.dom.minidom.parseString(xml_string)
pretty_xml_as_string = xml.toprettyxml()
See also
Favorite site
- xml.etree.ElementTree — The ElementTree XML API
 - ElementTree Overview
 - 점프 투 파이썬: ElementTree를 사용한 XML 처리
 - Python - xml 다루기 via ElementTree #1
 - 파이썬과 XML의 예술적인 만남
 - Python, XML사용하기 1
 - 파이썬으로 XML문서를 다루는 방법
 - Python Tutorial ≫ XML ≫ DOM
 - The Document Object Model API (xml.dom)
 - 파이썬으로 XML 다루기
 
References
-  
Python_xml_use.pdf ↩