1
Element
とElementTree
のクラスの機能をxml.etree
から拡張してxml.etree.ElementTree.parse()
と使用したいと思います。ElementとElementTreeの機能拡張
いくつかの試行を経て、私はその問題の解決策を作成しましたが、より良い解決策があるかどうか、またはこれに隠れた危険性があるかどうかを知りたいと思います。
FooElementTree.py
import xml.etree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import ElementTree
class FooElement(Element):
def __repr__(self):
return "<FooElement %s at 0x%x>" % (repr(self.tag), id(self))
class FooElementTree(ElementTree):
pass
xml.etree.ElementTree.Element = FooElement
xml.etree.ElementTree.ElementTree = FooElementTree
from xml.etree.ElementTree import parse
用途:
>>> import FooElementTree
>>> e = FooElementTree.parse('xml.cfg')
>>> e
<FooElementTree.FooElementTree object at 0x023AB650>
>>> r = e.getroot()
>>> r
<FooElement 'configuration' at 0x23c5470>