Python 解析XML

http://www.cnblogs.com/ifantastic/archive/2013/04/12/3017110.html


http://blog.csdn.net/kiki113/article/details/4052584


实现XML:增删改查,遍历 ,支持中文。


try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET


def indent(elem, level=0):
    i = "\n" + level*"  "
    print 'indent begin-----------'
    if len(elem):
        print 'elem.text = ' ,elem.text
        print 'elem.tail = ' ,elem.tail 
        if not elem.text or not elem.text.strip():
            print ' change line and add some tab space ----begin --'
            elem.text = i + "  "
            print ET.tostring(elem,'utf-8')
            print ' change line and add some tab space ----end--'
        if not elem.tail or not elem.tail.strip():
            print 'only change line but not add space ----begin--'
            elem.tail = i 
            print ET.tostring(elem,'utf-8')
            print ' only change line but not add space ----end--'
        for elem in elem:
            indent(elem, level+1)
        if not elem.tail or not elem.tail.strip():
            elem.tail = i 
    else:
        print 'level %d ,not elem.tail or not elem.tail.strip() ---begin------' %(level)
        if level and (not elem.tail or not elem.tail.strip()):
            elem.tail = i
            print ET.tostring(elem,'utf-8')
        print 'level %d ,not elem.tail or not elem.tail.strip() ---end------' %(level)
tree = ET.parse('test.xml')    #载入数据
root = tree.getroot()
indent(root)
print ET.tostring(root, 'utf-8')

posted on 2013-10-11 17:29  KHacker  阅读(114)  评论(0编辑  收藏  举报