Skip to content

Commit 07402db

Browse files
committed
Make sure _childNodes is correct everywhere for etree
1 parent e41a3e1 commit 07402db

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

html5lib/treebuilders/etree.py

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,6 @@ def _setAttributes(self, attributes):
7474

7575
attributes = property(_getAttributes, _setAttributes)
7676

77-
def _getChildNodes(self):
78-
return self._childNodes
79-
80-
def _setChildNodes(self, value):
81-
del self._element[:]
82-
self._childNodes = []
83-
for element in value:
84-
self.insertChild(element)
85-
86-
childNodes = property(_getChildNodes, _setChildNodes)
87-
8877
def hasContent(self):
8978
"""Return true if the node has children or text"""
9079
return bool(self._element.text or len(self._element))
@@ -95,6 +84,7 @@ def appendChild(self, node):
9584
node.parent = self
9685

9786
def insertBefore(self, node, refNode):
87+
self._childNodes.append(node)
9888
index = list(self._element).index(refNode._element)
9989
self._element.insert(index, node._element)
10090
node.parent = self
@@ -134,17 +124,18 @@ def cloneNode(self):
134124
return element
135125

136126
def reparentChildren(self, newParent):
137-
if newParent.childNodes:
138-
newParent.childNodes[-1]._element.tail += self._element.text
127+
if newParent._childNodes:
128+
newParent._childNodes[-1]._element.tail += self._element.text
139129
else:
140130
if not newParent._element.text:
141131
newParent._element.text = ""
142132
if self._element.text is not None:
143133
newParent._element.text += self._element.text
144134
self._element.text = ""
145-
for child in self.childNodes:
135+
for child in self._childNodes:
146136
newParent.appendChild(child)
147-
self.childNodes = []
137+
del self._element[:]
138+
self._childNodes = []
148139

149140
class Comment(Element):
150141
def __init__(self, data):

0 commit comments

Comments
 (0)