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()
1 from xml.etree import ElementTree as ET 2 3 tree = ET.parse('first.xml') 4 5 root = tree.getroot() 6 # print(root.tag) 7 # print(root.attrib) 8 # print(root.text) 9 # 創建節點,element類型 10 son = root.makeelement('tt',{'vv':'KK'}) 11 s = son.makeelement('tt',{'kk':'132443'}) 12 # son = ET.Element('tt',{'vv':'KK'}) 13 # s = ET.Element('tt',{'kk':'132443'}) 14 son.append(s) 15 root.append(son) 16 tree.write('out.xml')
簡單創建xml
1 from xml.etree import ElementTree as ET 2 3 root = ET.Element('root',{'age':'18'}) 4 5 son=ET.SubElement(root,'root',{'age':'18'}) 6 ET.SubElement(son,'haha',{'bb':'fhfhf'}) 7 8 tree = ET.ElementTree(root) 9 tree.write('aha.xml')
結果
<root age="18"> <root age="18"> <haha bb="fhfhf" /> </root> </root>