lxml を使用すると、次のことができます。
from lxml import etree
parser = etree.XMLParser(resolve_entities=False)
xml.etree.ElementTree XMLParser で同じことができますか?
lxml を使用すると、次のことができます。
from lxml import etree
parser = etree.XMLParser(resolve_entities=False)
xml.etree.ElementTree XMLParser で同じことができますか?
ソースコードをざっと見てみると、。ほど簡単なことは何もわかりません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.entity
dictを更新してみてください。