首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >lxml unicode实体解析问题

lxml unicode实体解析问题
EN

Stack Overflow用户
提问于 2010-05-14 14:53:02
回答 1查看 3.2K关注 0票数 2

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

代码语言:javascript
运行
复制
xmldoc = open(filename)
etree.parse(xmldoc)

但我得到:

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

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

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

代码语言:javascript
运行
复制
<!ENTITY eacute "&#233;">

并在xmldoc中引用(并且一直是),如下所示:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE DScribeDatabase SYSTEM "foo.dtd">

但我还是遇到同样的问题..。DTD也需要用Python声明吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-14 14:58:06

eacute不是XML中的预定义实体。要在XML文件中包含&eacute;实体引用,它必须有一个指向定义实体的DTD (例如XHTML1.0DTD)的<!DOCTYPE>声明。

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

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2835077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档