python讀寫xml文件實例詳解嘛
xml文件:country.xml
<data> <country name="shdi2hajk">231 <rank>1<NewNode A="1">This is NEW</NewNode></rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor direction="E" name="Austria" /> <neighbor direction="W" name="Switzerland" /> </country> <country name="Singapore"> <rank>4</rank> <year>2011</year> <gdppc>59900</gdppc> <neighbor direction="N" name="Malaysia" /> </country> <country name="Panama"> <rank>68</rank> <year>2011</year> <gdppc>13600</gdppc> <neighbor direction="W" name="Costa Rica" /> <neighbor direction="E" name="Colombia" /> </country> <MediaPlatformService height="165" ip="36.32.160.199" passWord="111" port="9084" userName="admin" width="220"> </MediaPlatformService> </data>
xml文件解讀
1.xml一個節點有三個屬性:tag、text、attrib 2. 以第一個子節點country為例: 3. tag代表節點名字,country節點的tag就是它的名字:country 4. text代表節點文本內容,rank節點的text就是1 5. attrib代表節點包含的屬性,以{屬性:值}這樣的字典形式存放。country節點的屬性是{name:Liechtenstein}.name是屬性的鍵,Liechtenstein是屬性的值。{屬性:值}就是一個字典類型,可以使用一切字典方法。 6. country節點的tag為country,attrib為{name:Liechtenstein},text為空 7. rank節點的tag為rank,attrib為空字典,text為1 8. 綜上所述,xml文檔主要由節點以及節點的三個屬性組成。
讀取文件:
import xml.etree.ElementTree as ET file_path = r'xml_te.xml' tree = ET.ElementTree(file = file_path) #讀取xml文件 print(tree.iter()) for i in tree.iter('rank'): #迭代獲取tag為'rank'的節點 print(i.text) nodes = tree.find('country') #獲取第一個tag為country的節點,返回是子節點的迭代對象 print(nodes.tag) nodes2 = tree.findall('country') #獲取所有tag為country的節點 print(nodes2) for node in nodes2: #打印節點的三個屬性 print(node.tag) print(node.attrib) print(node.text)
增加新節點及修改屬性值和文本
import xml.etree.ElementTree as ET file_path = r'xml_te.xml' tree = ET.ElementTree(file = file_path) #讀取xml文件 # root = tree.getroot() #獲取根結點 """增加新節點""" net = ET.Element('NewNode') net.attrib = {'A':"1"} #節點屬性 net.text = "This is NEW" #節點文本 node = tree.find('country/rank/NewNode') #找到需要增加子節點的父節點 node.append(net) print(node.text) tree.write(file_path) #寫入文件 """修改屬性值""" sub = tree.find('country') #找到節點 sub.set('name',"shdi2hajk") #set(key,new value) sub.text = '231' print(sub.attrib) print(sub.text) tree.write(file_path) #寫入文件
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- python xml模塊的簡單使用
- python標準庫ElementTree處理xml
- python操作XML格式文件的一些常見方法
- python 對xml解析的示例
- 關於使用python反編譯apk簽名出包的問題