我总结一下:minidom似乎不喜欢8859个命名实体;什么是合适的解决方案?
以下代码说明了我的情况:
sample = """
<html>
<body>
<h1>Un ejemplo</h1>
<p>Me llamo Juan Fulano y Hernández.</p>
</body>
</html>
"""
sample2 = sample.replace("á", "á")
import xml.dom.minidom
dom2 = xml.dom.minidom.parseString(sample2)
dom = xml.dom.minidom.parseString(sample)
简要说明:当HTML包含'á'和类似的,表示为命名实体时,minidom会抱怨
... xml.parsers.expat.ExpatError: undefined entity ...
我该如何回应?我
不可行是说服(X)HTML的作者避开命名实体。
答案 0 :(得分:10)
xml.dom.minidom
是一个XML解析器,而不是HTML解析器。因此,它不知道任何HTML实体(仅限于XML和HTML共有的那些实体:"
,&
,<
,>
和{{1} })。