4

lxml を使用すると、次のことができます。

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

xml.etree.ElementTree XMLParser で同じことができますか?

4

1 に答える 1

2

ソースコードをざっと見てみると、。ほど簡単なことは何もわかりませんresolve_entities=False

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.entitydictを更新してみてください。

于 2012-11-24T14:56:57.843 に答える