繁体   English   中英

lxml unicode实体解析问题

[英]lxml unicode entity parse problems

我使用lxml如下来分析从另一个系统导出的XML文件:

xmldoc = open(filename)
etree.parse(xmldoc)

但即时通讯:

lxml.etree.XMLSyntaxError:未定义实体“ eacute”,行4495,第46列

显然,Unicode实体名称存在问题-但是我将如何解决呢? 通过open()还是parse()?

编辑:我忘记了将我的DTD包含在同一个文件夹中-它现在在那里并且具有以下声明:

<!ENTITY eacute "&#233;">

并在xmldoc中这样被引用(并且一直如此):

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE DScribeDatabase SYSTEM "foo.dtd">

但是我仍然遇到同样的问题……DTD是否也需要在Python中声明?

eacute不是XML中的预定义实体。 包含&eacute; 在XML文件中的实体引用中,它必须具有指向定义该实体的DTD(例如XHTML 1.0 DTD)的<!DOCTYPE>声明。

如果XML使用&eacute; 但没有<!DOCTYPE> ,它格式不正确,导出它的系统需要修复。

(没有充分的理由使用实体引用来表示XML文件中的é 。在没有实体定义的情况下,字符引用&#233;到处都可以理解,如果该文件不能简单地包含原始的UTF- é 。某些原因。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM