mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Merged revisions 71414 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r71414 | r.david.murray | 2009-04-09 17:54:50 -0400 (Thu, 09 Apr 2009) | 3 lines Issue #2170: refactored xml.dom.minidom.normalize, increasing both its clarity and its speed. ........
This commit is contained in:
parent
a619180354
commit
dc6da8abda
3 changed files with 175 additions and 18 deletions
|
@ -179,34 +179,27 @@ class Node(xml.dom.Node):
|
|||
L = []
|
||||
for child in self.childNodes:
|
||||
if child.nodeType == Node.TEXT_NODE:
|
||||
data = child.data
|
||||
if data and L and L[-1].nodeType == child.nodeType:
|
||||
if not child.data:
|
||||
# empty text node; discard
|
||||
if L:
|
||||
L[-1].nextSibling = child.nextSibling
|
||||
if child.nextSibling:
|
||||
child.nextSibling.previousSibling = child.previousSibling
|
||||
child.unlink()
|
||||
elif L and L[-1].nodeType == child.nodeType:
|
||||
# collapse text node
|
||||
node = L[-1]
|
||||
node.data = node.data + child.data
|
||||
node.nextSibling = child.nextSibling
|
||||
if child.nextSibling:
|
||||
child.nextSibling.previousSibling = node
|
||||
child.unlink()
|
||||
elif data:
|
||||
if L:
|
||||
L[-1].nextSibling = child
|
||||
child.previousSibling = L[-1]
|
||||
else:
|
||||
child.previousSibling = None
|
||||
else:
|
||||
L.append(child)
|
||||
else:
|
||||
# empty text node; discard
|
||||
child.unlink()
|
||||
else:
|
||||
if L:
|
||||
L[-1].nextSibling = child
|
||||
child.previousSibling = L[-1]
|
||||
else:
|
||||
child.previousSibling = None
|
||||
L.append(child)
|
||||
if child.nodeType == Node.ELEMENT_NODE:
|
||||
child.normalize()
|
||||
if L:
|
||||
L[-1].nextSibling = None
|
||||
self.childNodes[:] = L
|
||||
|
||||
def cloneNode(self, deep):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue