蟒蛇 - 解析Unicode字符XML到ElementTree的
问题描述:
我使用PDFminer,但它包含了一个错误,我得到以下无效的XML文件:蟒蛇 - 解析Unicode字符XML到ElementTree的
<?xml version="1.1" encoding="UTF-8"?>
<string size="16">ô‚ÌfƇ*š]Ö[</string>
当我试图用ElementTree
我解析它“M收到以下错误:
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,但如何?
答
我会在CDATA中包装违规的XML字符串。确认我尽快工作。例如:
<?xml version="1.1" encoding="UTF-8"?>
<string><![CDATA[ô‚ÌƇ*šÖ]]></string>
更多关于CDATA here。
+0
这只是暂时的解决方案,因为现在我需要调用'html.unescape()'来获得所需的价值。 –
问题似乎是''(和其他几个)等于'U + 0002',AFAIK不是XML文件中的有效字符。 – rodrigo
哦,XML版本是'“1.1”'!你不会每天都看到。那么我想'U + 0002'毕竟是正确的,但是你会很难找到兼容的工具... – rodrigo