網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
xml文件:country.xml
231 1 This is NEW 2008 141100 4 2011 59900 68 2011 13600
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é)
原文鏈接:https://blog.csdn.net/qq_38122800/article/details/123208245
相關(guān)推薦
- 2023-04-19 Android開(kāi)發(fā)服務(wù)Service全面講解_Android
- 2022-05-04 詳解Tomcat中查看JVM內(nèi)存使用情況_Tomcat
- 2022-08-20 python數(shù)字圖像處理之對(duì)比度與亮度調(diào)整示例_python
- 2022-03-26 Flutter構(gòu)建自定義Widgets的全過(guò)程記錄_Android
- 2022-04-23 小程序云函數(shù)解析encryptedData
- 2022-05-12 databinding 與 RecyclerView.Adapter
- 2023-03-02 Kotlin關(guān)于協(xié)程是什么的探究_Android
- 2022-03-29 詳解python字符串相關(guān)str_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支