[英]xml.etree.ElementTree.ParseError: unbound prefix: How to solve this issue without making any change to xml file
This is my sample xml file:这是我的示例 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>
when i try to parse the xml:当我尝试解析 xml 时:
import xml.etree.ElementTree as ET
xml_file = "name.xml"
xml_tree = ET.parse(xml_file)
root = xml_tree.getroot()
Following Error occured:发生以下错误:
xml.etree.ElementTree.ParseError: unbound prefix: line 13, column 9
I have referred many sites but most of them gives only one solution ie to provide namespace.我已经提到了很多网站,但大多数网站只提供了一种解决方案,即提供名称空间。 But I can't add or delete anything in this xml file.
但我无法在这个 xml 文件中添加或删除任何内容。 So is there any method by which i can parse this xml file without modifying the file.
那么有没有什么方法可以在不修改文件的情况下解析这个xml文件。
I hope, this will fix your issue (use lxml ETREE)我希望,这会解决你的问题(使用 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.