我可以禁用在ElementTree XMLParser中解析的实体吗?

时间:2012-11-13 05:44:18

标签: python lxml elementtree xml.etree

使用lxml我可以:

from lxml import etree
parser = etree.XMLParser(resolve_entities=False)

我可以使用xml.etree.ElementTree XMLParser吗?

1 个答案:

答案 0 :(得分:2)

快速查看源代码并不像resolve_entities=False那样简单。

以下是the source of xml.etree.ElementTree.XMLParser的摘录:

parser.DefaultHandlerExpand = self._default
parser.StartElementHandler = self._start
parser.EndElementHandler = self._end
parser.CharacterDataHandler = self._data
# optional callbacks
parser.CommentHandler = self._comment
parser.ProcessingInstructionHandler = self._pi

没有配置其他pyexpat处理程序。

现在,您是否对&等知名XML实体感兴趣?似乎未定义的实体正在通过XMLParser._default,因此您可以通过扩展该方法获得一些东西。

但是你想用这个来完成什么?如果这只是添加新实体,请尝试更新XMLParser.entity词典。