Python 解析XML文件
更新時(shí)間:2009年04月15日 22:07:14 作者:
google一篇關(guān)于Python解析XML文件的博文不過(guò)XML文件出錯(cuò),整理如下。
Python文件:
#parsexml.py
#本例子參考自python聯(lián)機(jī)文檔,做了適當(dāng)改動(dòng)和添加
import xml.parsers.expat
#控制打印縮進(jìn)
level = 0
#獲取某節(jié)點(diǎn)名稱及屬性值集合
def start_element(name, attrs):
global level
print ' '*level, 'Start element:', name, attrs
level = level + 1
#獲取某節(jié)點(diǎn)結(jié)束名稱
def end_element(name):
global level
level = level - 1
print ' '*level, 'End element:', name
#獲取某節(jié)點(diǎn)中間的值
def char_data(data):
if(data == '\n'):
return
if(data.isspace()):
return
global level
print ' '*level, 'Character data:', data
p = xml.parsers.expat.ParserCreate()
p.StartElementHandler = start_element
p.EndElementHandler = end_element
p.CharacterDataHandler = char_data
p.returns_unicode = False
f = file('sample.xml')
p.ParseFile(f)
f.close()
XML文件(sample.xml):
<contacts id="bluecrystal">
<item name="keen" fff="ddd">
<telephone type="phone">222222222</telephone>
<telephone type="mobile">134567890</telephone>
</item>
<item name="bcm">
<telephone type="phone">11111111</telephone>
<telephone type="mobile">15909878909</telephone>
</item>
</contacts>
復(fù)制代碼 代碼如下:
#parsexml.py
#本例子參考自python聯(lián)機(jī)文檔,做了適當(dāng)改動(dòng)和添加
import xml.parsers.expat
#控制打印縮進(jìn)
level = 0
#獲取某節(jié)點(diǎn)名稱及屬性值集合
def start_element(name, attrs):
global level
print ' '*level, 'Start element:', name, attrs
level = level + 1
#獲取某節(jié)點(diǎn)結(jié)束名稱
def end_element(name):
global level
level = level - 1
print ' '*level, 'End element:', name
#獲取某節(jié)點(diǎn)中間的值
def char_data(data):
if(data == '\n'):
return
if(data.isspace()):
return
global level
print ' '*level, 'Character data:', data
p = xml.parsers.expat.ParserCreate()
p.StartElementHandler = start_element
p.EndElementHandler = end_element
p.CharacterDataHandler = char_data
p.returns_unicode = False
f = file('sample.xml')
p.ParseFile(f)
f.close()
XML文件(sample.xml):
復(fù)制代碼 代碼如下:
<contacts id="bluecrystal">
<item name="keen" fff="ddd">
<telephone type="phone">222222222</telephone>
<telephone type="mobile">134567890</telephone>
</item>
<item name="bcm">
<telephone type="phone">11111111</telephone>
<telephone type="mobile">15909878909</telephone>
</item>
</contacts>
相關(guān)文章
使用PyCharm創(chuàng)建Django項(xiàng)目及基本配置詳解
pycharm是個(gè)很不錯(cuò)的python開發(fā)工具,大大縮短了python項(xiàng)目的創(chuàng)建時(shí)間以及調(diào)試時(shí)間。這篇文章主要介紹了使用PyCharm創(chuàng)建Django項(xiàng)目及基本配置詳解,pycharm是個(gè)很不錯(cuò)的python開發(fā)工具,大大縮短了python項(xiàng)目的創(chuàng)建時(shí)間以及調(diào)試時(shí)間2018-10-10Python微服務(wù)開發(fā)之使用FastAPI構(gòu)建高效API
微服務(wù)架構(gòu)在現(xiàn)代軟件開發(fā)中日益普及,它將復(fù)雜的應(yīng)用程序拆分成多個(gè)可獨(dú)立部署的小型服務(wù)。本文將介紹如何使用 Python 的 FastAPI 庫(kù)快速構(gòu)建和部署微服務(wù),感興趣的可以了解一下2023-05-05Python3中urllib庫(kù)添加請(qǐng)求頭的兩種方式
Python?3中的urllib模塊可以用來(lái)處理URL,包括下載和上傳文件、創(chuàng)建和讀取cookie、訪問(wèn)Web?API等,本文給大家介紹Python3中urllib庫(kù)添加請(qǐng)求頭的兩種方式,感興趣的朋友一起看看吧2023-10-10關(guān)于python3.7安裝matplotlib始終無(wú)法成功的問(wèn)題的解決
這篇文章主要介紹了關(guān)于python3.7安裝matplotlib始終無(wú)法成功的問(wèn)題的解決,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07