程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> python通過ElementTree操作XML獲取結點讀取屬性美化XML

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

編輯:更多關於編程

     本文講解如何通過ElementTree解析XML,獲取兒子結點、插入兒子結點、操作屬性、美化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根結點使用getroot()方法;   XML示例文件:     代碼如下: <item sid='1712' name = '大CC'  > <a id=1></a> <a id=2></a> </item>     3.獲取兒子結點 查找Element的所有子結點:      代碼如下: AArry = item.findall('a') 也可使用getchildren(): childs =  item.getchildren()      for subItem in childs:            print subItem.get('id')     4.插入兒子結點 方法一:     復制代碼 代碼如下:  item = Element("item", {'sid' : '1713', 'name' : 'ityouhui'})  root.append(item)   方法二: 代碼如下: SE(root,'item',{'sid':'1713','name':'ityouhui'})   法一的好處是插入之後可以對item繼續操作。法二是寫法上簡單,其中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調用此函數,寫入的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
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved