簡體   English   中英

xml.etree.ElementTree.ParseError: unbound prefix: 如何在不對 xml 文件進行任何更改的情況下解決此問題

[英]xml.etree.ElementTree.ParseError: unbound prefix: How to solve this issue without making any change to 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>

當我嘗試解析 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM