欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python通過ElementTree操作XML獲取結(jié)點讀取屬性美化XML

 更新時間:2013年12月02日 09:22:57   作者:  
本文講解如何通過ElementTree解析XML,獲取兒子結(jié)點、插入兒子結(jié)點、操作屬性、美化XML

1.引入庫
需要用到3個類,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é)點使用getroot()方法;

XML示例文件:

復制代碼 代碼如下:

<item sid='1712' name = '大CC'  >
<a id=1></a>
<a id=2></a>
</item>

3.獲取兒子結(jié)點
查找Element的所有子結(jié)點:

復制代碼 代碼如下:

AArry = item.findall('a')
也可使用getchildren():
childs =  item.getchildren()
     for subItem in childs:
           print subItem.get('id')

4.插入兒子結(jié)點
方法一:

復制代碼 代碼如下:

 item = Element("item", {'sid' : '1713', 'name' : 'ityouhui'})
 root.append(item)

方法二:
復制代碼 代碼如下:

SE(root,'item',{'sid':'1713','name':'ityouhui'})

法一的好處是插入之后可以對item繼續(xù)操作。法二是寫法上簡單,其中SE就是SubElement,在引入處做了聲明;

5.操作屬性
獲取Element的某個屬性值(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)文章

  • Windows和夜神模擬器上抓包程序mitmproxy的安裝使用詳解

    Windows和夜神模擬器上抓包程序mitmproxy的安裝使用詳解

    mitmproxy是一個支持HTTP和HTTPS的抓包程序,有類似Fiddler、Charles的功能,只不過它是一個控制臺的形式操作,這篇文章主要介紹了Windows和夜神模擬器上抓包程序mitmproxy的安裝使用詳解,需要的朋友可以參考下
    2022-10-10
  • python搜索指定目錄的方法

    python搜索指定目錄的方法

    這篇文章主要介紹了python搜索指定目錄的方法,涉及Python操作目錄的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python 實現(xiàn)一行輸入多個值的方法

    Python 實現(xiàn)一行輸入多個值的方法

    下面小編就為大家分享一篇Python 實現(xiàn)一行輸入多個值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python實現(xiàn)獲取sonarqube數(shù)據(jù)

    Python實現(xiàn)獲取sonarqube數(shù)據(jù)

    sonarqube是一款代碼分析的工具,可以對通過soanrScanner掃描后的數(shù)據(jù)傳遞給sonarqube進行分析,本文為大家整理了Python獲取sonarqube數(shù)據(jù)的方法,需要的可以參考下
    2023-05-05
  • Python編程快速上手——PDF文件操作案例分析

    Python編程快速上手——PDF文件操作案例分析

    這篇文章主要介紹了Python 文件操作,結(jié)合具體實例形式分析了Python針對pdf文件的遍歷、讀寫、加密、解密等相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2020-02-02
  • pytorch簡介

    pytorch簡介

    Pytorch是torch的python版本,是由Facebook開源的神經(jīng)網(wǎng)絡(luò)框架,專門針對 GPU 加速的深度神經(jīng)網(wǎng)絡(luò)(DNN)編程。這篇文章給大家介紹pytorch的相關(guān)知識,感興趣的朋友一起看看吧
    2020-11-11
  • python getopt詳解及簡單實例

    python getopt詳解及簡單實例

    這篇文章主要介紹了 python getopt詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 對python 操作solr索引數(shù)據(jù)的實例詳解

    對python 操作solr索引數(shù)據(jù)的實例詳解

    今天小編就為大家分享一篇對python 操作solr索引數(shù)據(jù)的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python多行輸入程序?qū)嵗a及擴展

    Python多行輸入程序?qū)嵗a及擴展

    我們都知道Python內(nèi)置方法input只能輸入一行內(nèi)容,我們今天來實現(xiàn)輸入多行文本功能,這篇文章主要給大家介紹了關(guān)于Python多行輸入程序的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • numpy數(shù)組坐標軸問題解決

    numpy數(shù)組坐標軸問題解決

    本文主要介紹了numpy數(shù)組坐標軸問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03

最新評論