python通過ElementTree操作XML
1.引入庫
需要用到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ù)操作。方法二是寫法上簡(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
在寫入之前,傳入root調(diào)用此函數(shù),寫入的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通過ElementTree操作XML的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python標(biāo)準(zhǔn)庫ElementTree處理xml
- Python如何使用ElementTree解析xml
- Python使用ElementTree美化XML格式的操作
- 利用 Python ElementTree 生成 xml的實(shí)例
- Python3 xml.etree.ElementTree支持的XPath語法詳解
- 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通過ElementTree操作XML獲取結(jié)點(diǎn)讀取屬性美化XML
相關(guān)文章
python獲得兩個(gè)數(shù)組交集、并集、差集的方法
這篇文章主要介紹了python獲得兩個(gè)數(shù)組交集、并集、差集的方法,實(shí)例分析了Python操作list集合的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03keras獲得model中某一層的某一個(gè)Tensor的輸出維度教程
今天小編就為大家分享一篇keras獲得model中某一層的某一個(gè)Tensor的輸出維度教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01python基礎(chǔ)之while循環(huán)、for循環(huán)詳解及舉例
所謂循環(huán)結(jié)構(gòu)就是程序中控制某條或某些指令重復(fù)執(zhí)行的結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之while循環(huán)、for循環(huán)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04python實(shí)現(xiàn)在函數(shù)中修改變量值的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)在函數(shù)中修改變量值的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07