![](https://secure.gravatar.com/avatar/a484de0e03b0a6315f539015b6a52c3e.jpg?s=120&d=mm&r=g)
Hi everybody, For my application, I try to inherit the ElementBase class of lxml. I have read the following page: http://codespeak.net/lxml/dev/api/lxml.etree.ElementBase-class.html "Class ElementBase: The public Element class. All custom Element classes must inherit from this one. To create an Element, use the Element() factory." So I have tried to define a new class deriving from ET.ElementBase, and set the factory (__metaclass__) to ET.Element. You will find my code below. I obtain: $ p test_element_factory.py Traceback (most recent call last): File "test_element_factory.py", line 3, in <module> class NewElement( ET.ElementBase ): File "etree.pyx", line 1844, in etree.Element File "apihelpers.pxi", line 129, in etree._makeElement File "apihelpers.pxi", line 116, in etree._makeElement File "etree.pyx", line 362, in etree._Document._setNodeNamespaces File "apihelpers.pxi", line 651, in etree._utf8 TypeError: Argument must be string or unicode. What is the problem? Thanks in advance, Julien ############################## import lxml.etree as ET class NewElement( ET.ElementBase ): __metaclass__ = ET.Element def _init( self , *args , **kwargs ): super( NewElement, self ).__init__( self , *args , **kwargs ) a = NewElement( "root" ) print a ############################## -- python -c "print ''.join([chr(154 - ord(c)) for c in '*9(9&(18%.\ 9&1+,\'Z4(55l4('])" "When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong." (first law of AC Clarke)