当我使用python ElementT时,解析带有特殊字符(如ü)的xml文件失败

2024-05-28 18:30:13 发布

您现在位置:Python中文网/ 问答频道 /正文

xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE dblp SYSTEM "dblp.dtd">
<dblp>
<title>Schnelle Multiplikation von Polynomen &uuml;ber K&ouml;rpern der Charakteristik 2.</title>
</dblp>

我用python解析这个文件如下,我还有一个.dtd文件:

^{pr2}$

它报告错误:

xml.etree.ElementTree.ParseError: undefined entity '&uuml';


Tags: 文件titleversionisoxmlsystemdoctypeencoding
1条回答
网友
1楼 · 发布于 2024-05-28 18:30:13

通过此网站上另一个帖子的解决方案解决:

from xml.etree.ElementTree import iterparse, XMLParser
import htmlentitydefs

class CustomEntity:
    def __getitem__(self, key):
        if key == 'umml':
            key = 'uuml' # Fix invalid entity
        return unichr(htmlentitydefs.name2codepoint[key])

parser = XMLParser()
parser.parser.UseForeignDTD(True)
parser.entity = CustomEntity()

for (event, node) in iterparse('dblp.xml', events=['start'], parser=parser):
    print node.tag
    node.clear()

相关问题 更多 >

    热门问题