xml遍历
#coding=utf-8
#author:wsy
Date: 2019 / 9 / 19
Time: 13:57
tag:string對(duì)象,表示數(shù)據(jù)代表的種類,當(dāng)為節(jié)點(diǎn)時(shí)為節(jié)點(diǎn)名稱。
text:string對(duì)象,表示element的內(nèi)容。
attrib:dictionary對(duì)象,表示附有的屬性。
tail:string對(duì)象,表示element閉合之后的尾跡。
若干子元素(child elements)。
path=‘C:/Users/dell/Desktop/exl_file/’
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
1. 從文件中解析xml文件
tree = ET.ElementTree(file=path+‘doc.xml’) # 載入數(shù)據(jù)
root = tree.getroot() # 獲取根節(jié)點(diǎn)
import 數(shù)據(jù)庫(kù)連接 as ds
local_data=ds.data_souce()
2. 從內(nèi)存字符串中解析xml
root = ET.fromstring(ds.data_souce())
import xml
import xml.etree.ElementTree as ET
“”"
實(shí)現(xiàn)從xml文件中讀取數(shù)據(jù)
“”"
全局唯一標(biāo)識(shí)
unique_id = 1
遍歷所有的節(jié)點(diǎn)
def walkData(root_node, level, result_list):
global unique_id
temp_list = [unique_id, level, root_node.tag, root_node.attrib,root_node.text]
result_list.append(temp_list)
unique_id += 1
# 遍歷每個(gè)子節(jié)點(diǎn)
children_node = root_node.getchildren()
if len(children_node) == 0:return
for child in children_node:walkData(child, level + 1, result_list)
return
def getXmlData(file_name):
level = 1 # 節(jié)點(diǎn)的深度從1開始
result_list = []
root = ET.parse(file_name).getroot()
walkData(root, level, result_list)
return result_list
if name == ‘main’:
# ‘d:\fenlei2.xml’
file_name = path+‘test_medical.xml’
R = getXmlData(file_name)
for x in R:
print(x)
總結(jié)
- 上一篇: Python 标准库之 xml.etre
- 下一篇: 正则笔记