我有一个具有以下内容的xml文件:
<word>vegetation</word>
<word>cover</word>
<word>(31%</word>
<word>split_identifier ;</word>
<word>Still</word>
<word>and</word>
当我使用ElmentTree解析读取文件时,它给我错误:
xml.etree.ElementTree.ParseError:引用无效字符 号码
它是由于(&#x2是“〜”)。
我该如何处理此类问题。我不确定将来还会有多少其他符号。
答案 0 :(得分:1)
如果要摆脱这些特殊字符,可以通过将输入XML字符串擦洗:
respXML = response.content.decode("utf-16")
scrubbedXML = re.sub('&.+[0-9]+;', '', respXML)
respRoot = ET.fromstring(scrubbedXML)
如果您希望保留特殊字符,可以事先解析它们。就您而言,它看起来像html,因此您可以使用python html模块:
import html
respRoot = ET.fromstring(html.unescape(response.content.decode("utf-16"))