最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2013年12月02日 09:22:57   作者:  
本文講解如何通過(guò)ElementTree解析XML,獲取兒子結(jié)點(diǎn)、插入兒子結(jié)點(diǎn)、操作屬性、美化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示例文件:

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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

方法二:
復(fù)制代碼 代碼如下:

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

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

5.操作屬性
獲取Element的某個(gè)屬性值(eg:獲取item的 name)

復(fù)制代碼 代碼如下:

print root.find('item/name').text
print item.get('name')

獲取Element所有屬性
復(fù)制代碼 代碼如下:

print item.items()       # [('sid', '1712'), ('name', '大CC')]
print item.attrib        # {'sid': '1712', 'name': '大CC'}

6.美化XML
在寫入之前,傳入root調(diào)用此函數(shù),寫入的XML文件格式整齊美觀:

復(fù)制代碼 代碼如下:

indent(root)
book.write(xmlfile,'utf-8')

復(fù)制代碼 代碼如下:

## 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)文章

最新評(píng)論

博湖县| 小金县| 新蔡县| 荆州市| 泰安市| 三穗县| 托里县| 卓资县| 松滋市| 屏南县| 田阳县| 萨嘎县| 孝昌县| 太原市| 卓资县| 镇康县| 东乡族自治县| 巨野县| 额尔古纳市| 嘉禾县| 边坝县| 重庆市| 泸水县| 湾仔区| 油尖旺区| 新晃| 台中市| 汶上县| 军事| 库尔勒市| 如东县| 新巴尔虎左旗| 平南县| 登封市| 周至县| 电白县| 湖口县| 同江市| 北流市| 宽甸| 方正县|