python讀寫(xiě)xml文件實(shí)例詳解嘛
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一個(gè)節(jié)點(diǎn)有三個(gè)屬性:tag、text、attrib 2. 以第一個(gè)子節(jié)點(diǎn)country為例: 3. tag代表節(jié)點(diǎn)名字,country節(jié)點(diǎn)的tag就是它的名字:country 4. text代表節(jié)點(diǎn)文本內(nèi)容,rank節(jié)點(diǎn)的text就是1 5. attrib代表節(jié)點(diǎn)包含的屬性,以{屬性:值}這樣的字典形式存放。country節(jié)點(diǎn)的屬性是{name:Liechtenstein}.name是屬性的鍵,Liechtenstein是屬性的值。{屬性:值}就是一個(gè)字典類型,可以使用一切字典方法。 6. country節(jié)點(diǎn)的tag為country,attrib為{name:Liechtenstein},text為空 7. rank節(jié)點(diǎn)的tag為rank,attrib為空字典,text為1 8. 綜上所述,xml文檔主要由節(jié)點(diǎn)以及節(jié)點(diǎn)的三個(gè)屬性組成。
讀取文件:
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'的節(jié)點(diǎn) print(i.text) nodes = tree.find('country') #獲取第一個(gè)tag為country的節(jié)點(diǎn),返回是子節(jié)點(diǎn)的迭代對(duì)象 print(nodes.tag) nodes2 = tree.findall('country') #獲取所有tag為country的節(jié)點(diǎn) print(nodes2) for node in nodes2: #打印節(jié)點(diǎn)的三個(gè)屬性 print(node.tag) print(node.attrib) print(node.text)
增加新節(jié)點(diǎn)及修改屬性值和文本
import xml.etree.ElementTree as ET file_path = r'xml_te.xml' tree = ET.ElementTree(file = file_path) #讀取xml文件 # root = tree.getroot() #獲取根結(jié)點(diǎn) """增加新節(jié)點(diǎn)""" net = ET.Element('NewNode') net.attrib = {'A':"1"} #節(jié)點(diǎn)屬性 net.text = "This is NEW" #節(jié)點(diǎn)文本 node = tree.find('country/rank/NewNode') #找到需要增加子節(jié)點(diǎn)的父節(jié)點(diǎn) node.append(net) print(node.text) tree.write(file_path) #寫(xiě)入文件 """修改屬性值""" sub = tree.find('country') #找到節(jié)點(diǎn) sub.set('name',"shdi2hajk") #set(key,new value) sub.text = '231' print(sub.attrib) print(sub.text) tree.write(file_path) #寫(xiě)入文件
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
通過(guò)代碼簡(jiǎn)單了解django model序列化作用
這篇文章主要介紹了通過(guò)代碼簡(jiǎn)單了解django model序列化作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11python讀取文件夾中圖片的圖片名并寫(xiě)入excel表格
這篇文章介紹了使用python讀取文件夾中圖片的圖片名并寫(xiě)入excel表格的方法。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12Python面向?qū)ο缶幊剃P(guān)鍵深度探索類與對(duì)象
這篇文章主要為大家介紹了Python面向?qū)ο缶幊剃P(guān)鍵深度探索類與對(duì)象示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見(jiàn)用法詳解
這篇文章主要介紹了python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見(jiàn)用法,結(jié)合實(shí)例形式分析了Python mysql操作庫(kù)pymysql、sqlalchemy基本使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03在python中利用KNN實(shí)現(xiàn)對(duì)iris進(jìn)行分類的方法
今天小編就為大家分享一篇在python中利用KNN實(shí)現(xiàn)對(duì)iris進(jìn)行分類的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python隨機(jī)生成信用卡卡號(hào)的實(shí)現(xiàn)方法
這篇文章主要介紹了Python隨機(jī)生成信用卡卡號(hào)的實(shí)現(xiàn)方法,可實(shí)現(xiàn)生成信用卡卡號(hào)的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05使用Python的PIL庫(kù)給圖像進(jìn)行過(guò)濾
PIL是一個(gè)用于圖像處理的Python庫(kù),它提供了各種功能,包括加載、保存、編輯和處理圖像,你可以使用PIL庫(kù)進(jìn)行圖像縮放、裁剪、旋轉(zhuǎn)、濾鏡應(yīng)用等操作,本文將介紹如何使用Python的PIL庫(kù)給圖像進(jìn)行過(guò)濾,需要的朋友可以參考下2023-08-08