Python从XML-fi读取数据

2024-10-01 11:36:10 发布

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

我使用minidom来读取我的XML文件,但是在下面的示例中,这不起作用。我有一个错误消息:

我想检索<span>标记(101.86090)中的值,但有一个错误。在

代码如下:

 from xml.dom import minidom

 docXML = minidom.parse('/root/Desktop/tpage.xml')
 node = docXML.getElementsByTagName('span')[0]
 t= node.firstChild.data

这是tpage.xml的内容:

^{pr2}$

下面是错误消息:

 File "minidomrecup.py", line 5, in <module>
    dom = parse('/root/Desktop/bot/tpage.xml')
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1920, in parse
    return expatbuilder.parse(file)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 924, in parse
    result = builder.parseFile(fp)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile
    parser.Parse(buffer, 0)
xml.parsers.expat.ExpatError: unbound prefix: line 2, column 0

Tags: inpy消息parselibusr错误line
1条回答
网友
1楼 · 发布于 2024-10-01 11:36:10

显示的XML无效,因为它使用了名称空间前缀(sys),但没有定义它,而XML解析器(xml.dom.expatbuilder模块)对此感到窒息。您必须直接转到expatbuilder,以便给它的parse()函数一个忽略名称空间的参数。如果您想在秒的<span>中提取文本节点,那么您的索引将被关闭一个:

from xml.dom import expatbuilder


def main():
    document = expatbuilder.parse('test.xml', False)
    node = document.getElementsByTagName('span')[1]
    print float(node.firstChild.data)


if __name__ == '__main__':
    main()

相关问题 更多 >