在Python中自带多种处理XML的工具库,如dom4j,SAX等,这里我们认识一下另外一种,较这两种有更多优点的ElementTree,具体可以百度一下了,这里不再多说,先看示例,代码的目的就是怎么从零创建一个新的XML文件
1 #!python 2 #coding=GBK 3 ################################################################################ 4 # 通过ElementTree来操作XML 5 # 6 ################################################################################ 7 from xml.etree import cElementTree as ET 8 from xml.dom import minidom 9 10 def fomatTree(elem): 11 """格式化XML的内容,用于输出,保存XML时并不需要""" 12 root_str = ET.tostring(elem, 'UTF-8') 13 reparse = minidom.parseString(root_str) 14 return reparse.toprettyxml(" ") 15 def createXML(): 16 """创建新的XML文件""" 17 head = """ 18 <clearcase module="portal"> 19 </clearcase> 20 """ 21 root = ET.fromstring(head) 22 elem = ET.Element("version", {'editor': 'magc', 'time': '20120523',}) 23 elem2 = ET.Element('branch', {'editor': 'wang', 'time': '202203',}) 24 root.append(elem) 25 root.append(elem2) 26 27 print fomatTree(root) 28 ET.ElementTree(root).write('samples.xml') 29 30 31 32 33 34 if __name__ == '__main__': 35 createXML()
控制台运行结果如下图:
生成的samples.xml内容如下:
注:1)通过mindom格式化只是为了输出到控制台的,写入文件时,并不需要此过程的
2)注意分清ElementTree实例与Element实例,以及由Element转化到ElementTree,然后再用write方法,来输出到文件中