python 使用 xml.etree.ElementTree 解析 xml

使用 xml.etree.ElementTree  (簡稱ET) 來解析 xml  非常好用推薦給大家。按照我自己的理解,使用ET 解析xml 就像 遍歷 字典一樣 ,以如下數據爲例

<?xml version="1.0" encoding="utf-8"?>
	<SMP2019-ECISA>
		<Doc ID="4">
			<Sentence ID="1" label="2">轉發了財新網的微博:【內鬼與大鱷姚剛張育軍的唏噓人生】(記者劉彩萍)近日,中國證券監督管理委員會原黨委委員、副主席姚剛和原黨委委員、主席助理張育軍被查。</Sentence>
			<Sentence ID="2">兩位高級幹部先後被雙開並移交司法引發資本市場無限唏噓,曾經的後備幹部、創新先鋒倒在了利益面前。</Sentence>
			<Sentence ID="3">內鬼與大鱷姚剛張育軍的唏噓人生??</Sentence>
			<Sentence ID="4">原圖?</Sentence>
			<Sentence ID="5">贊[21]?</Sentence>
			<Sentence ID="6">原文轉發[29]?</Sentence>
			<Sentence ID="7">原文評論[52]轉發理由:副主席,江湖上稱發審皇帝,IPO審批制的堅決擁護者。</Sentence>
			<Sentence ID="8">攀附山西王成,讓一大批樂視這種垃圾公司上市,權?</Sentence>
			<Sentence ID="9">貴牛的中樞。</Sentence>
			<Sentence ID="10">人民牛,還缺一個市場化IPO,還多一個發審委。</Sentence>
		</Doc>
</SMP2019-ECISA>

具體代碼如下

import xml.etree.ElementTree as ET

in_file = 'SMP2019_ECISA_Dev.xml'
tree = ET.parse(in_file)
# 獲得根節點 SMP2019-ECISA
root = tree.getroot()
# 遍歷根節點
for doc in root:
    # attrib 獲得 doc 的屬性
    doc_attr = doc.attrib 
    print(doc_attr) # {'ID': '4'}
    # 遍歷doc 中的子元素
    for sent in doc:
        sent_attr = sent.attrib
        print(sent_attr) # {'ID': '1', 'label': '2'}
        # 獲得正文
        text = sent.text
        print(text) #轉發了財新網的微博:【內鬼與大鱷姚剛張育軍的唏噓人生】...

解析過程 非常簡單,主要是三個點

  1. 直接使用 in 一層一層 遍歷
  2. element.attrib 獲得 對應元素的屬性
  3. element.text 獲得正文

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章