Skip to content

Commit 51b2223

Browse files
author
James Graham
committed
Fix some problems with etree and new python version
--HG-- extra : transplant_source : %8Ab%974%D2%9Bu%3D%F5%FC%BBy%9B%DF9%00%AF_1R
1 parent 7460e1a commit 51b2223

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

html5lib/treebuilders/etree.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import new
22
import re
3+
import types
34

45
import _base
56
from html5lib import ihatexml
@@ -91,15 +92,15 @@ def _setChildNodes(self, value):
9192

9293
def 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

9697
def appendChild(self, node):
9798
self._childNodes.append(node)
9899
self._element.append(node._element)
99100
node.parent = self
100101

101102
def insertBefore(self, node, refNode):
102-
index = self._element.getchildren().index(refNode._element)
103+
index = list(self._element).index(refNode._element)
103104
self._element.insert(index, node._element)
104105
node.parent = self
105106

@@ -119,7 +120,7 @@ def insertText(self, data, insertBefore=None):
119120
self._element[-1].tail += data
120121
else:
121122
#Insert the text before the specified node
122-
children = self._element.getchildren()
123+
children = list(self._element)
123124
index = children.index(insertBefore._element)
124125
if index > 0:
125126
if not self._element[index-1].tail:
@@ -217,9 +218,10 @@ def serializeElement(element, indent=0):
217218
rv.append("|%s\"%s\""%(' '*(indent+2), element.text))
218219
if element.tail:
219220
finalText = element.tail
220-
elif type(element.tag) == type(ElementTree.Comment):
221+
elif element.tag == ElementTree.Comment:
221222
rv.append("|%s<!-- %s -->"%(' '*indent, element.text))
222223
else:
224+
assert type(element.tag) in types.StringTypes, "Expected unicode, got %s"%type(element.tag)
223225
nsmatch = tag_regexp.match(element.tag)
224226

225227
if nsmatch is None:
@@ -247,7 +249,7 @@ def serializeElement(element, indent=0):
247249
if element.text:
248250
rv.append("|%s\"%s\"" %(' '*(indent+2), element.text))
249251
indent += 2
250-
for child in element.getchildren():
252+
for child in element:
251253
serializeElement(child, indent)
252254
if element.tail:
253255
rv.append("|%s\"%s\"" %(' '*(indent-2), element.tail))
@@ -281,7 +283,7 @@ def serializeElement(element):
281283
if element.tail:
282284
finalText = element.tail
283285

284-
for child in element.getchildren():
286+
for child in element:
285287
serializeElement(child)
286288

287289
elif type(element.tag) == type(ElementTree.Comment):
@@ -298,7 +300,7 @@ def serializeElement(element):
298300
if element.text:
299301
rv.append(element.text)
300302

301-
for child in element.getchildren():
303+
for child in element:
302304
serializeElement(child)
303305

304306
rv.append("</%s>"%(element.tag,))

0 commit comments

Comments
 (0)