使用Python读写XML文件
2013-03-29 21:07
351 查看
使用Python读写XML文件标签: python xml 分类: 计算机技术 2008-01-07 20:11 以前用Python中的minidom写过生成XML文件的程序,现在需要读取XML文件中的内容了,首先想到的还是minidom模块.一番编写测试后,如愿掌握了其函数的使用方式,和AJAX中的DOM操作没什么区别. 以前就知道elementtree在处理XML文件时广受Python程序员的欢迎,也安装过elementtree的安装包,现在使用的Python2.5中已将其收录了.既然我要处理XML文件,当然也要学着使用更高效和易用的模块了.自己摸索了半天,除了有关名字空间的函数没有试用外,其它函数都试用过了.以后处理XML文件可以得心应手了。 下面是一个简单的例子,通过它可以知道各个函数的使用方法: from xml.etree.ElementTree import ElementTree from xml.etree.ElementTree import Element from xml.etree.ElementTree import SubElement from xml.etree.ElementTree import dump from xml.etree.ElementTree import Comment from xml.etree.ElementTree import tostring ''' <?xml version="1.0"?> <PurchaseOrder> <account refnum="2390094"/> <item sku="33-993933" qty="4"> <name>Potato Smasher</name> <description>Smash Potatoes like never before.</description> </item> </PurchaseOrder> ''' ## Writing the content to xml document book = ElementTree() purchaseorder = Element('PurchaseOrder') book._setroot(purchaseorder) SubElement(purchaseorder, 'account', {'refnum' : "2390094"}) item = Element("item", {'sku' : '33-993933', 'qty' : '4'}) purchaseorder.append(item) print item.items() # [('sku', '33-993933'), ('qty', '4')] print item.attrib # {'sku': '33-993933', 'qty': '4'} print item.get('sku') # 33-993933 SubElement(item, 'name').text = "Potato Smasher" SubElement(item, 'description').text = "Smash Potatoes like never before." #book.write('book.xml',"utf-8") #print tostring(purchaseorder) #import sys #book.write(sys.stdout) #dump(book) ## Displaying the content of the xml document print purchaseorder.find('account') print purchaseorder.find('account').get('refnum') print purchaseorder.findall('account')[0].get('refnum') print purchaseorder.find('item/name') print purchaseorder.find('item/name').text ## How to use ElementTree([element,] [file]) ## 1. From standard XML element, it becomes root element print ElementTree(item).getroot().find('name').text ## 2. From XML file print ElementTree(file='book.xml').getroot().find('item/description').text ## Create an iterator for element in purchaseorder.getiterator(): print element.tag ## Get pretty look def indent(elem, level=0): i = "\n" + level*" " if len(elem): if not elem.text or not elem.text.strip(): elem.text = i + " " for e in elem: indent(e, level+1) if not e.tail or not e.tail.strip(): e.tail = i if level and (not elem.tail or not elem.tail.strip()): elem.tail = i return elem if __name__=="__main__": dump(indent(purchaseorder)) book.write('book.xml',"utf-8") |
相关文章推荐
- 使用dom4j读写XML文件
- android使用pull解析器读写xml文件…
- python基础 27章 使用XML_RPC进行文件共享
- 快乐Python快速上手系列2 - XML文件读写
- Python使用openpyxl读写excel文件
- python 列表 字典 读写文件:pickle模块的基本使用
- Python使用XPATH解析特定结构XML文件速度提升方法
- 使用 XStream 读写 XML 文件
- 如何使用Python3读写INI配置文件
- 使用Python和xml.etree.ElementTree解析xml文件
- 使用XML读写删除功能来实现资源文件配置
- python项目练习八:使用XML-RPC进行远程文件共享
- python numpy包的使用二数据处理与文件读写
- Python 读写XML文件
- python 6-5 如何读写excel文件 使用第三方库xlrd 和 xlwt,这两个库分别用于excel读和写
- python项目练习八:使用XML-RPC进行远程文件共享
- python使用csv模块读写csv文件
- Python中使用ElementTree解析XML文件
- 使用python读写CSV文件的三种方法
- python的xml库操作读写文件真是慢的无语,跟直接操作文本型的操作真不是一个级别的