xml.etree. elementtree . parseerror: unbound prefix:如何在不更改xm



这是我的示例xml文件:

<?xml version="1.0"?>
<NewSpg>
<!--Supported Range-->
<ABC data="LS">
<number Info="0x00" Id="DFS" Bus="0" Device="2" Range="4" Value="0x1A1012f5" no_id="he d kd" /> 
<number Info="0x32" Id="bhi"  Range="4" Value="0x000012f5" />
<number Info="0x336" Id="bhi" Range="4" Value="0x00000df2" />
</ABC>
<!--New Info-->
<NEW_VALUES>
<Spg:Thing data="First_Thing" Result="true"/>
<Spg:Thing data="SecondThing" Result="800000000"/>
</NEW_VALUES>
</NewSpg>

当我尝试解析xml时:

import xml.etree.ElementTree as ET
xml_file = "name.xml"
xml_tree = ET.parse(xml_file)
root = xml_tree.getroot()

出现以下错误:

xml.etree.ElementTree.ParseError: unbound prefix: line 13, column 9

我已经提到了许多网站,但他们中的大多数只给出了一个解决方案,即提供命名空间。但是我不能在这个xml文件中添加或删除任何东西。那么,有没有什么方法可以让我在不修改文件的情况下解析这个xml文件呢?

我希望,这将解决您的问题(使用lxml ETREE)

from lxml import etree
xml_file = "./unbound_prefix.xml"
parser1 = etree.XMLParser(encoding='utf-8', recover=True)
xml_tree = etree.parse(xml_file, parser=parser1)
root = xml_tree.getroot()
root

最新更新