引用无效字符编号:(Python ElementTree解析)

时间:2019-08-02 19:46:50

标签: python elementtree

我有一个具有以下内容的xml文件:

    <word>vegetation</word>
    <word>cover</word>
    <word>(&#x2;31%</word>
    <word>split_identifier ;</word>
    <word>Still</word>
    <word>and</word>

当我使用ElmentTree解析读取文件时,它给我错误:

  

xml.etree.ElementTree.ParseError:引用无效字符   号码

它是由于(&#x2是“〜”)。

我该如何处理此类问题。我不确定将来还会有多少其他符号。

1 个答案:

答案 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"))