小編寫這篇文章的主要目的,就是用來給大家講解介紹一下,關于python中,使用ElementTree來操作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一個操作。方法二,其就是在寫作方面,其寫法是比較簡單的,其就是在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
關于python中ElementTree來操作XML就為大家介紹到這里了,希望可以給各位讀者帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127813.html
摘要:是回調函數,當鏈接服務器和相應數據傳輸完畢時觸發本函數可選。僅僅是針對的,在中,已經沒有這個模塊了,取代它的是。由于以流式讀取文件,從而速度較快,切少占用內存,但是操作上稍復雜,需要用戶實現回調函數。 編寫模塊 模塊是程序 模塊就是一個擴展名為.py的Python程序。 編寫模塊 #!/usr/bin/env python # coding=utf-8 lang = python 引...
摘要:,用庫實現網頁內容提取是的一個庫,可以迅速靈活地處理。,集搜客開源代碼下載源開源網絡爬蟲源,文檔修改歷史,增補文字說明把跟帖的代碼補充了進來,增加最后一章源代碼下載源 showImg(https://segmentfault.com/img/bVvBTt); 1,引言 在Python網絡爬蟲內容提取器一文我們詳細講解了核心部件:可插拔的內容提取器類gsExtractor。本文記錄了確定...
摘要:溫習統計學的知識為更深層次的學習做準備在的演講中說就是我們理解但不知道另外的是如何的我在臺下想對于那可以理解的我好像都只懂了參考標準高效的流程課程用的是我不想再學一門類似的語言了我會找出相對應的和的來源流程什么是干凈的一個變 Why The Data Science Specialization 溫習統計學的知識, 為更深層次的學習做準備 Andrew Ng 在 2015 GTC ...
摘要:在網絡爬蟲內容提取器一文我們詳細了解了核心部件可插拔的內容提取器。這是第一部分,實驗了方式一次性提取靜態網頁內容并轉換成格式。 在python網絡爬蟲內容提取器一文我們詳細了解了核心部件:可插拔的內容提取器gsExtractor。本文記錄了確定gsExtractor的技術路線過程中所做的編程實驗。這是第一部分,實驗了xslt方式一次性提取靜態網頁內容并轉換成xml格式。用lxml庫實現...
摘要:最近一周一直在幫家里小弟看高考志愿,所以更新的沒那么頻繁了,請大家見諒。在看各高校的往年分數時,忍不住手癢,想著能不能給它爬下來哈哈,說干就干流程分析之前無意中在這個網站發現有各個高校的歷年錄取分數線。 最近一周一直在幫家里小弟看高考志愿,所以更新的沒那么頻繁了,請大家見諒。 在看各高校的往年分數時,忍不住手癢,想著能不能給它爬下來?哈哈,說干就干! 1 流程分析 之前無意中在這個網站...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02