用ElementTree在Python中操作XML一例

在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()

控制台运行结果如下图:

用ElementTree在Python中操作XML一例

生成的samples.xml内容如下:

用ElementTree在Python中操作XML一例

注:1)通过mindom格式化只是为了输出到控制台的,写入文件时,并不需要此过程的

  2)注意分清ElementTree实例与Element实例,以及由Element转化到ElementTree,然后再用write方法,来输出到文件中

你可能感兴趣的:(element)