从xml文件中提取数据(python)

时间:2019-10-06 15:31:40

标签: python xml

我想从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')。我该怎么办?

1 个答案:

答案 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查询支持。