1. 程式人生 > 實用技巧 >python 解析xml檔案

python 解析xml檔案

https://www.cnblogs.com/handsome1013/p/10058838.html
ET.Parser 用法
https://www.cnblogs.com/yezuhui/p/6853323.html

import xml.etree.ElementTree as ET----------匯入xml模組

root = ET.parse('GHO.xml')------------------分析指定xml檔案
tree = root.getroot()-----------------------獲取第一標籤
data = tree.find('Data')--------------------查詢第一標籤中'Data'標籤

for obs in data:----------------------------歷遍'Data'中的所有標籤
for item in obs:------------------------歷遍'Data'中的'obs'標籤下的所有標籤
key = item.attrib()-----------------提取key值引數
print(list(key))--------------------輸出key值

如何讀取屬性及節點內容。

怎樣將data中的 id,name及其值取出來?

問題解釋

兩種方式:
1.先取得node
String strID = node.getAttributes().getNamedItem("id").getNodeValue();

String strName = node.getAttributes().getNamedItem("name").getNodeValue();
2.先取得element
String strID = element.getAttribute("id");
String strName = element.getAttribute("name");

小練習

#!/usr/bin/env python
import sys
import xml.etree.ElementTree as ET

tree = ET.parse('abcdefg.xml')
root = tree.getroot()

iter_elem = root.findall('.//*')
print(len(iter_elem))
#elem = root.find('')
#print iter_elem
for element in iter_elem:

    if element is None:
        continue
    if element.text is None:
        continue
    print("hello")
    context=[]	
    src_elem = element.find("source")
    if src_elem is None:
        continue
    context.append(src_elem.text)	

    print( "attri :%s"%src_elem.attrib)
    print("tag :%s"%src_elem.tag)		

    #for item in src_elem:
	#    key = item.text()
	#    print list(key)