python - 将带有unicode字符的XML解析为ElementTree

时间:2017-10-12 17:26:25

标签: python xml unicode

我使用PDFminer,但它包含一个错误,我收到以下无效的XML文件:

<?xml version="1.1" encoding="UTF-8"?>
<string size="16">&#244;&#130;&#204;&#2;f&#198;&#135;&#143;&#11;*&#154;&#23;]&#214;&#20;[</string>

当我尝试使用ElementTree解析它时,我收到以下错误:

    bookXml = xml.etree.ElementTree.parse(filename)
  File "C:\Users\User\Anaconda3\lib\xml\etree\ElementTree.py", line 1196, in parse
    tree.parse(source, parser)
  File "C:\Users\User\Anaconda3\lib\xml\etree\ElementTree.py", line 597, in parse
    self._root = parser._parse_whole(source)
xml.etree.ElementTree.ParseError: reference to invalid character number: line 1, column 36

我认为处理这种情况的最佳方法是首先修复XML,但是如何修复?

1 个答案:

答案 0 :(得分:1)

我会在CDATA中包装有问题的XML字符串。我这样做后确认工作。例如:

    <?xml version="1.1" encoding="UTF-8"?>
<string><![CDATA[&#244;&#130;&#204;&#2;&#198;&#135;&#143;&#11;*&#154;&#23;&#214;&#20;]]></string>

有关CDATA here的更多信息。