您的位置:首页 > 其它

xml数据处理--ElementTree模块使用

2014-04-29 10:28 375 查看
下面是对1.xml的数据的处理代码

# coding:utf-8
import xml.etree.ElementTree as ET
def main():
person_data = {}
f = open('1.xml')
tree = ET.parse(f)
root = tree.getroot()
with open('data','w') as fp:
for person in root.getiterator('person'):
for item in person.getiterator():
if isinstance(item.text,unicode):
item.text = item.text.encode('utf-8')
if item.tag != 'person' and item.text is not None:
print >>fp,item.tag+":"+str(item.text)+"|",
print >>fp
if __name__ == '__main__':
main()


通过代码可以知道ElementTree在使用上比sax更加方便。
sax和ElementTree的比较:
sax:顺序读取数据,不能随意读取,只能从头到尾解析一遍,不能修改数据。不受文件大小限制。
ElementTree:轻量级的dom,可以使用迭代器遍历数据。可以修改数据,随意读取数据。对于大数据来说比sax使用的内存要多很多,因为ElementTree需要载入整个数据。

关于大数据的处理方法请参考该地址:
http://www.ibm.com/developerworks/cn/xml/x-hiperfparse/

本文出自 “fly天地” 博客,请务必保留此出处http://liuping0906.blog.51cto.com/2516248/1404362
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: