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è)字典類(lèi)型,可以使用一切字典方法。
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-11
python讀取文件夾中圖片的圖片名并寫(xiě)入excel表格
這篇文章介紹了使用python讀取文件夾中圖片的圖片名并寫(xiě)入excel表格的方法。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
Python面向?qū)ο缶幊剃P(guān)鍵深度探索類(lèi)與對(duì)象
這篇文章主要為大家介紹了Python面向?qū)ο缶幊剃P(guān)鍵深度探索類(lèi)與對(duì)象示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
python數(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)行分類(lèi)的方法
今天小編就為大家分享一篇在python中利用KNN實(shí)現(xiàn)對(duì)iris進(jìn)行分類(lèi)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Python隨機(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

