Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法
面試題
有一個(gè)test.xml文件,要求讀取該文件中products節(jié)點(diǎn)的所有子節(jié)點(diǎn)的值以及子節(jié)點(diǎn)的屬性值。
test.xml文件:
<!-- products.xml -->
<root>
<products>
<product uuid='1234'>
<id>10000</id>
<name>蘋(píng)果</name>
<price>99999</price>
</product>
<product uuid='1235'>
<id>10001</id>
<name>小米</name>
<price>999</price>
</product>
<product uuid='1236'>
<id>10002</id>
<name>華為</name>
<price>9999</price>
</product>
</products>
</root>解析
# coding=utf-8
from xml.etree.ElementTree import parse
doc = parse('./products.xml')
print(type(doc))
for item in doc.iterfind('products/product'):
id = item.findtext('id')
name = item.findtext('name')
price = item.findtext('price')
uuid = item.get('uuid')
print('uuid={}, id={}, name={}, price={}'.format(uuid, id, name, price), end='\n----------\n')
- 通過(guò)parse函數(shù)可以讀取XML文檔,該函數(shù)返回ElementTree類型的對(duì)象,通過(guò)該對(duì)象的iterfind方法可以對(duì)XML中特定節(jié)點(diǎn)進(jìn)行迭代。
- XML結(jié)構(gòu)的獨(dú)特,使得它很方便在任何應(yīng)用程序中讀和寫(xiě)數(shù)據(jù),所以XML非??炀统蔀閿?shù)據(jù)交換的唯一公共語(yǔ)言,雖然不同軟件也支持其他的數(shù)據(jù)交換格式,但這并不影響,支持XML數(shù)據(jù)交換格式的應(yīng)用程序可以十分容易的與windows,linux或者其他平臺(tái)產(chǎn)生的信息結(jié)合,然后可以十分方便的加載XML數(shù)據(jù)到程序中并分析它,最后以XML格式輸出結(jié)果。
- 不過(guò)細(xì)心的朋友應(yīng)該能發(fā)現(xiàn),這個(gè)格式的數(shù)據(jù)與我們?cè)谂老x(chóng)爬取數(shù)據(jù)時(shí),未經(jīng)處理的原始數(shù)據(jù)格式十分相像,甚至讀取操作都幾乎一模一樣,有興趣的朋友可以自行去搜索看看這兩種數(shù)據(jù)格式的背景哦
到此這篇關(guān)于Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法的文章就介紹到這了,更多相關(guān)Python讀取XML內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pycharm 在windows上編輯代碼用linux執(zhí)行配置的方法
今天小編就為大家分享一篇pycharm 在windows上編輯代碼用linux執(zhí)行配置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
解決pycharm同一目錄下無(wú)法import其他文件
今天小編就為大家分享一篇解決pycharm同一目錄下無(wú)法import其他文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python docutils文檔編譯過(guò)程方法解析
這篇文章主要介紹了Python docutils文檔編譯過(guò)程方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
python實(shí)現(xiàn)emoji對(duì)齊特殊字符對(duì)齊高級(jí)文本對(duì)齊
這篇文章主要為大家介紹了python實(shí)現(xiàn)emoji對(duì)齊特殊字符對(duì)齊高級(jí)文本對(duì)齊方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Python基礎(chǔ)之面向?qū)ο筮M(jìn)階詳解
這篇文章主要為大家詳細(xì)介紹了Python基礎(chǔ)之面向?qū)ο筮M(jìn)階,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02
Python?venv創(chuàng)建失敗問(wèn)題
本文主要介紹了Python?venv創(chuàng)建失敗問(wèn)題,解決方法是安裝缺失的venv庫(kù),通過(guò)`sudo?apt-get?install?python3.11-venv`命令安裝后,即可成功創(chuàng)建虛擬環(huán)境,感興趣的可以了解一下2024-11-11
Python PyQt5干貨滿滿小項(xiàng)目輕松實(shí)現(xiàn)高效摳圖去背景
PyQt5以一套Python模塊的形式來(lái)實(shí)現(xiàn)功能。它包含了超過(guò)620個(gè)類,600個(gè)方法和函數(shù)。本篇文章手把手帶你用PyQt5輕松實(shí)現(xiàn)圖片扣除背景,大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11
python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼
本篇文章主要介紹了python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
django 發(fā)送手機(jī)驗(yàn)證碼的示例代碼
本篇文章主要介紹了django 發(fā)送手機(jī)驗(yàn)證碼的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04

