您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么用python標(biāo)準(zhǔn)庫ElementTree處理xml”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
參照官方文檔,創(chuàng)建country_data.xml測試文檔,內(nèi)容如下:
<?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank>1</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor name="Austria" direction="E"/> <neighbor name="Switzerland" direction="W"/> </country> <country name="Singapore"> <rank>4</rank> <year>2011</year> <gdppc>59900</gdppc> <neighbor name="Malaysia" direction="N"/> </country> <country name="Panama"> <rank>68</rank> <year>2011</year> <gdppc>13600</gdppc> <neighbor name="Costa Rica" direction="W"/> <neighbor name="Colombia" direction="E"/> </country> </data>
使用如下代碼,將數(shù)據(jù)讀出,打印
from xml.etree.ElementTree data = ElementTree.ElementTree(file='country_data.xml') country_list = data.findall('country') #找到所有名為‘country'的tag,返回一個Element對象列表。 for country in country_list: name = country.attrib.get('name', '') print name, ' ', for item in country: if item.tag == 'neighbor': name = item.attrib.get('name', '') direction = item.attrib.get('direction', '') print '{0} ({1})'.format(name, direction), ' ', else: print item.text, ' ', print ''
其中
data = ElementTree.ElementTree(file='country_data.xml')
獲得一個ElementTree對象,也可以使用
tree = ElementTree.parse('country_data.xml')
elem.tag | 這個Element對象的名字(tag) |
elem.text | 文檔內(nèi)容 |
elem.attrib | 屬性值字典 |
elem.tail | 與屬性一起存儲的其他數(shù)據(jù) |
elem[n] 返回elem的第n個子元素
elem[n] = new_elem 將elem的第n個子元素更改為不同的元素new_elem
del elem[n] 刪除子元素
len(elem) 子元素的數(shù)量
elem.find(path)
elem.getchildren() 按文檔順序返回所有子元素
elem.items()將所有元素的屬性值以(name, value)對列表形式返回
bad.xml為空文檔時,內(nèi)容如下:
<?xml version="1.0"?>
執(zhí)行如下python代碼,遇到xml.parser.expat.ExpatError異常:
import xml.etree.ElementTree as ET ET.parse('bad.xml')
xml.parsers.expat.ExpatError: no element found: line 3, column 0
bad.xml中找不到對應(yīng)結(jié)束標(biāo)記符時,內(nèi)容如下:
<?xml version="1.0"?> <note> </Note>
因為區(qū)分大小寫,所以</Note> 不能作為<note>的結(jié)束標(biāo)記。
xml.parsers.expat.ExpatError: mismatched tag: line 3, column 2
bad.xml中屬性值未包含在雙引號(")之中時,遇到如下異常:
<?xml version="1.0"?> <note id=hello> </note>
bad.xml中非法符號,在"if salary < 1000 then"語句的‘<',如下:
<?xml version="1.0"?> <note id="hello"> if salary < 1000 then </note
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 2, column 9
“怎么用python標(biāo)準(zhǔn)庫ElementTree處理xml”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。