Jon*_*ley 2 python xml unicode lxml
我正在使用lxml来解析来自另一个系统的导出XML文件:
xmldoc = open(filename)
etree.parse(xmldoc)
Run Code Online (Sandbox Code Playgroud)
但我得到:
lxml.etree.XMLSyntaxError:未定义实体'eacute',第4495行,第46列
显然它有unicode实体名称的问题 - 但我怎么能绕过这个呢?通过open()或parse()?
编辑:我忘了把我的DTD包含在同一个文件夹中 - 它现在就在那里,并有以下声明:
<!ENTITY eacute "é">
Run Code Online (Sandbox Code Playgroud)
并且在xmldoc中被引用(并且始终是),如下所示:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE DScribeDatabase SYSTEM "foo.dtd">
Run Code Online (Sandbox Code Playgroud)
但我仍然遇到同样的问题...... DTD是否也需要在Python中声明?
eacute不是XML中的预定义实体.要é在XML文件中包含实体引用,它必须具有<!DOCTYPE>指向定义实体的DTD(例如XHTML 1.0 DTD)的声明.
如果XML使用é但没有<!DOCTYPE>,则表示格式不正确,导出它的系统需要修复.
(没有充分的理由使用实体引用来表示éXML文件.é如果文件é由于某种原因不能简单地包含原始UTF-8,则无需在没有实体定义的情况下随处理解字符引用.)
| 归档时间: |
|
| 查看次数: |
2750 次 |
| 最近记录: |