11import new
22import re
3+ import types
34
45import _base
56from html5lib import ihatexml
@@ -91,15 +92,15 @@ def _setChildNodes(self, value):
9192
9293def hasContent (self ):
9394"""Return true if the node has children or text"""
94- return bool (self ._element .text or self ._element . getchildren ( ))
95+ return bool (self ._element .text or len ( self ._element ))
9596
9697def appendChild (self ,node ):
9798self ._childNodes .append (node )
9899self ._element .append (node ._element )
99100node .parent = self
100101
101102def insertBefore (self ,node ,refNode ):
102- index = self ._element . getchildren ( ).index (refNode ._element )
103+ index = list ( self ._element ).index (refNode ._element )
103104self ._element .insert (index ,node ._element )
104105node .parent = self
105106
@@ -119,7 +120,7 @@ def insertText(self, data, insertBefore=None):
119120self ._element [- 1 ].tail += data
120121else :
121122#Insert the text before the specified node
122- children = self ._element . getchildren ( )
123+ children = list ( self ._element )
123124index = children .index (insertBefore ._element )
124125if index > 0 :
125126if not self ._element [index - 1 ].tail :
@@ -217,9 +218,10 @@ def serializeElement(element, indent=0):
217218rv .append ("|%s\" %s\" " % (' ' * (indent + 2 ),element .text ))
218219if element .tail :
219220finalText = element .tail
220- elif type ( element .tag ) == type ( ElementTree .Comment ) :
221+ elif element .tag == ElementTree .Comment :
221222rv .append ("|%s<!-- %s -->" % (' ' * indent ,element .text ))
222223else :
224+ assert type (element .tag )in types .StringTypes ,"Expected unicode, got %s" % type (element .tag )
223225nsmatch = tag_regexp .match (element .tag )
224226
225227if nsmatch is None :
@@ -247,7 +249,7 @@ def serializeElement(element, indent=0):
247249if element .text :
248250rv .append ("|%s\" %s\" " % (' ' * (indent + 2 ),element .text ))
249251indent += 2
250- for child in element . getchildren () :
252+ for child in element :
251253serializeElement (child ,indent )
252254if element .tail :
253255rv .append ("|%s\" %s\" " % (' ' * (indent - 2 ),element .tail ))
@@ -281,7 +283,7 @@ def serializeElement(element):
281283if element .tail :
282284finalText = element .tail
283285
284- for child in element . getchildren () :
286+ for child in element :
285287serializeElement (child )
286288
287289elif type (element .tag )== type (ElementTree .Comment ):
@@ -298,7 +300,7 @@ def serializeElement(element):
298300if element .text :
299301rv .append (element .text )
300302
301- for child in element . getchildren () :
303+ for child in element :
302304serializeElement (child )
303305
304306rv .append ("</%s>" % (element .tag ,))