我想从xml文件(xmldoc)中提取一些数据:<chart><series><value xid=\'0\'>2/01/2011</value>...
。
我可以使用以下代码提取日期“ 2/01/2011”:
chart= xmldoc.getElementsByTagName('chart')[0]
series= chart.getElementsByTagName('series')[0]
Dates=[]
for element in series.getElementsByTagName('value'):
Dates.append(element.firstChild.data)
但是我无法获得'xid'值(此处为'0')。我该怎么办?
答案 0 :(得分:0)
由于您似乎正在使用xml.dom.minidom
模块,因此需要查看DOM level 1 specification来了解实现了什么API。对于属性访问,元素具有一个getAttribute()
method:
element.getAttribute("xid")
但是,DOM是要使用的糟糕 API。它被设计为多种编程语言之间的最低公分母。对于XML处理,ElementTree API更加友好:
from xml.etree import ElementTree as ET
tree = ET.parse(xmlfile) # or ET.fromstring()
dates = []
for element in tree.findall('.//series/value'): # all <value> elements in <series> elements
xid = element.attrib['xid'] # attribute access via the .attrib dictionary
date = element.text # the text data in the element
您还可以查看lxml library,以获得ElementTree API的更强大实现,例如其他XPath查询支持。