问题 Python ElementTree解析未绑定的前缀错误


我在python中学习ElementTree。一切似乎都很好,除非我尝试用前缀解析xml文件:

test.xml

<?xml version="1.0"?>
<abc:data>
   <abc:country name="Liechtenstein" rank="1" year="2008">
   </abc:country>
   <abc:country name="Singapore" rank="4" year="2011">
   </abc:country>
   <abc:country name="Panama" rank="5" year="2011">
   </abc:country>
</abc:data>

当我尝试解析xml时:

import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')

我收到以下错误:

xml.etree.ElementTree.ParseError: unbound prefix: line 2, column 0

我是否需要指定一些内容才能解析带有前缀的xml文件?


2002
2017-11-14 03:30


起源

简而言之,abc缺少命名空间。看一眼: stackoverflow.com/a/4999510/1107807 - Don Question


答案:


将abc命名空间添加到xml文件中。

<?xml version="1.0"?>
<abc:data xmlns:abc="your namespace">

11
2018-02-13 09:07



但是,当我不改变XML时,我只需要解析它? - Mark Allen
我是@Mark Allen的问题/评论的第二个!我有同样的问题。当然,根据具体情况,可以编辑文件,但我有许多大(和非均匀)的xml文件。当然有办法解决这个问题 - dnh37