python通過(guò)ElementTree操作XML
1.引入庫(kù)
需要用到3個(gè)類,ElementTree,Element以及建立子類的包裝類SubElement
from xml.etree.ElementTree import ElementTree from xml.etree.ElementTree import Element from xml.etree.ElementTree import SubElement as SE
2.讀入并解析
tree = ElementTree(file=xmlfile) root = tree.getroot()
讀入后,tree是ElementTree的類型,獲取xml根結(jié)點(diǎn)使用getroot()方法;
XML示例文件:
<item sid='1712' name='大CC' > <a id=1></a> <a id=2></a> </item>
3.獲取子結(jié)點(diǎn)
查找Element的所有子結(jié)點(diǎn):
AArry = item.findall('a')也可使用getchildren():
childs = item.getchildren()
for subItem in childs:
print subItem.get('id')4.插入子結(jié)點(diǎn)
方法一:
item = Element("item", {'sid' : '1713', 'name' : 'ityouhui'})
root.append(item)方法二:
SE(root,'item',{'sid':'1713','name':'ityouhui'})方法一的好處是插入之后可以對(duì)item繼續(xù)操作。方法二是寫(xiě)法上簡(jiǎn)單,其中SE就是SubElement,在引入處做了聲明;
5.操作屬性
獲取Element的某個(gè)屬性值(eg:獲取item的 name)
print root.find('item/name').text
print item.get('name')獲取Element所有屬性
print item.items()?????? # [('sid', '1712'), ('name', '大CC')]
print item.attrib??????? # {'sid': '1712', 'name': '大CC'}6.美化XML
在寫(xiě)入之前,傳入root調(diào)用此函數(shù),寫(xiě)入的XML文件格式整齊美觀:
indent(root) book.write(xmlfile,'utf-8')
## Get pretty look
def indent( elem, level=0):
i = "\n" + level*" "
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + " "
for e in elem:
indent(e, level+1)
if not e.tail or not e.tail.strip():
e.tail = i
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = i
return elem到此這篇關(guān)于python通過(guò)ElementTree操作XML的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python標(biāo)準(zhǔn)庫(kù)ElementTree處理xml
- Python如何使用ElementTree解析xml
- Python使用ElementTree美化XML格式的操作
- 利用 Python ElementTree 生成 xml的實(shí)例
- Python3 xml.etree.ElementTree支持的XPath語(yǔ)法詳解
- Python利用ElementTree模塊處理XML的方法詳解
- python xml.etree.ElementTree遍歷xml所有節(jié)點(diǎn)實(shí)例詳解
- Python中使用ElementTree解析XML示例
- python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(八):XML生成與解析(DOM、ElementTree)
- python通過(guò)ElementTree操作XML獲取結(jié)點(diǎn)讀取屬性美化XML
相關(guān)文章
集調(diào)試共享及成本控制Prompt工具PromptLayer使用指南
這篇文章主要介紹了集調(diào)試共享及成本控制Prompt工具PromptLayer使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Python解析json時(shí)提示“string indices must be integers”問(wèn)題解決方法
這篇文章主要介紹了Python解析json時(shí)提示“string indices must be integers”問(wèn)題解決方法,結(jié)合實(shí)例形式分析了Python解析json字符串操作規(guī)范與相關(guān)使用技巧,需要的朋友可以參考下2019-07-07
Python Django Cookie 簡(jiǎn)單用法解析
這篇文章主要介紹了Python Django Cookie 簡(jiǎn)單用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python中scatter函數(shù)參數(shù)及用法詳解
這篇文章主要介紹了Python中scatter函數(shù)參數(shù)及用法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
springboot配置文件抽離 git管理統(tǒng) 配置中心詳解
在本篇文章里小編給大家整理的是關(guān)于springboot配置文件抽離 git管理統(tǒng) 配置中心的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2019-09-09
Python Django 數(shù)據(jù)庫(kù)的相關(guān)操作詳解
下面小編就為大家?guī)?lái)一篇django數(shù)據(jù)庫(kù)的相關(guān)操作,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-11-11
動(dòng)態(tài)創(chuàng)建類實(shí)例代碼
Python中要?jiǎng)?chuàng)建一個(gè)類的實(shí)例,要首先導(dǎo)入該類或者該類所屬的模塊。2009-10-10

