티스토리 뷰

programming/Scripts

parsing xml

Jacob_baek 2013. 7. 12. 16:11

python 에서는 다음과 같은 XML을 지원한다. 

SAX, DOM, ElementTree 과 같은 방식이 존재한다.

이중 ElementTree 가 python에 적합하게 구현된 방식이다.


lower 2.5 (minidom)


from xml.dom import minidom

xmldoc = minidom.parse('sample.xml')



참고사이트

http://wiki.python.org/moin/MiniDom


over 2.5 (ElementTree)

from xml.etree.ElementTree as ET
# import elementtree.ElementTree as ET

tree = ET.parse('sample.xml')
root = tree.getroot()

rootTagName = root.tag # tag : tag name, text : , attrib : 속성 값
rootNumber = int(root.attrib['number'])

# print all data
for elem in root:
    print elem.tag, elem.text, elem.attrib

# modify data
for parent in root.getiterator('data'):
    parent.text = 'test'

for elem in root:
    if elem.tag == 'step1':
        for st in elem.getiterator('step2'):
            st.text = 5

# append data
'''
element 추가의 경우 개행문자(carriage return)를 써서 표현되지 않고 여백(white space)로 표현된다.
이를 개행문자를 사용하여 표현하고자 하면 다음과 같은 트릭을 사용해야 한다.
-> prettyprint(맨 아래 링크 참고)

또한 추가후 write 해주어야 한다.
'''
sube = SubElement(root, 'test_sub')
sube.text = 'text_data_input'

test_elem = Element('test_elem')
root.append(test_elem)

# delete data


prettyprint : http://effbot.org/zone/element-lib.htm#prettyprint


참고사이트

http://drumcoder.co.uk/blog/2010/jun/17/using-elementtree-python/

http://coreapython.hosting.paran.com/manual/elementTree.htm



'programming > Scripts' 카테고리의 다른 글

powershell  (0) 2019.08.14
wsgi with apache  (0) 2016.07.20
python for ssh  (0) 2012.07.20
댓글
댓글쓰기 폼