python xml.etree ElementTree解析 編輯 xml

 

python有不少種xml解析方式,不過感受etree的ElementTree 用起來最方便。node

 1 #coding=utf-8
 2 from xml.etree import ElementTree
 3 
 4 import pdb
 5 
 6 def printNodeInfo(node):
 7 
 8     #node.tag 標籤名稱
 9     #node.text 文本屬性
10     print 'node.tag: %s' %node.tag
11 
12     #node.attrib 屬性字典
13     for key in node.attrib:
14         print '%s %s' %(key,node.attrib[key])
15     return None
16 
17 def main():
18 
19     pdb.set_trace()
20     try:
21         #ElementTree.parse(source,parser=None)
22         #將xml文件加載並返回ElementTree 對象
23         #parser 是一個可選的參數,若是爲空則使用標準的XMLParser
24         #step 1: 獲取 ElementTree 對象
25         xmlDoc = ElementTree.parse('D:\server\map\App.xml')
26         #step 2: 獲取 根節點
27         root = xmlDoc.getroot()
28         #root.getchildren() 獲取節點 返回的是列表
29         gateServerNodeList = root.getchildren()
30 
31         # 下面是在每一個gateServer 節點下 增長一個子節點
32         for node in gateServerNodeList:
33             # ElementTree.SubElement(parentNode,tagName)
34             #給parentNode 增長一個子節點
35             #和parentNode.append(Element) 效果一致
36             newNode = ElementTree.SubElement(node,'ActiveType')
37             # 設置屬性 
38             newNode.attrib['id'] = '9'
39             newNode.attrib['level'] = '38'
40             newNode.attrib['begin'] = '201401010000'
41             newNode.attrib['end'] = '201401010000'
42             #中文 須要 特殊譯碼
43             newNode.attrib['tip'] = '測試'.decode('utf-8')
44             #節點尾部的符號
45             newNode.tail = '\n'
46             #node.append(newNode)
47 
48         # 寫入文件 調用 以前的ElementTree 對象的
49         #write(fileName,encoding = None,xml_Decleare = None,default_namespace = None,method = None)
50         # 其中xml_Decleare 若是爲 True 則 在 文檔的最上方會寫入
51         #<?xml version="1.0" encoding="utf-8"?>
52         xmlDoc.write('D:test.xml','utf-8',True)
53     except Exception as e:
54         print e
55         
56     return None
57 
58 if __name__ == '__main__':
59     main()
相關文章
相關標籤/搜索