diff options
Diffstat (limited to 'Lib/xml/dom/minidom.py')
| -rw-r--r-- | Lib/xml/dom/minidom.py | 29 | 
1 files changed, 11 insertions, 18 deletions
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index 489ae52..77a44f5 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -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 -                    L.append(child)                  else: -                    # empty text node; discard -                    child.unlink() +                    L.append(child)              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):  | 
