从xml文件提取数据(python)

2024-04-26 03:53:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从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')。我怎么能做到


Tags: 文件数据代码inforvaluechartxml
1条回答
网友
1楼 · 发布于 2024-04-26 03:53:33

因为您似乎在使用xml.dom.minidom模块,所以需要查看DOM level 1 specification以了解实现了什么API。对于属性访问,元素具有^{} 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以获得更强大的elementtreeapi实现,例如额外的XPath查询支持

相关问题 更多 >