From: Fred Drake Date: Fri, 7 May 1999 21:14:28 +0000 (+0000) Subject: ExtendedEsisBuilder.push(): Override inherited definition. We don't X-Git-Tag: v1.6a1~1367 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2697694e4a56d9a87b4360b7fa4c7feafce92a94;p=thirdparty%2FPython%2Fcpython.git ExtendedEsisBuilder.push(): Override inherited definition. We don't want to push nodes into the document, but into a document fragment, since we're not necesarily working with something that's well-formed. --- diff --git a/Doc/tools/sgmlconv/esistools.py b/Doc/tools/sgmlconv/esistools.py index f44c13c8cc7b..3e0ffc341d76 100644 --- a/Doc/tools/sgmlconv/esistools.py +++ b/Doc/tools/sgmlconv/esistools.py @@ -4,6 +4,8 @@ __version__ = '$Revision$' import re import string import sys +import xml.dom.core +import xml.dom.esis_builder _data_rx = re.compile(r"[^\\][^\\]*") @@ -37,14 +39,12 @@ def encode(s): return string.join(map(_charmap.get, s), '') -import xml.dom.esis_builder - - class ExtendedEsisBuilder(xml.dom.esis_builder.EsisBuilder): def __init__(self, *args, **kw): self.__empties = {} self.__is_empty = 0 apply(xml.dom.esis_builder.EsisBuilder.__init__, (self,) + args, kw) + self.fragment = self.document.createDocumentFragment() def feed(self, data): for line in string.split(data, '\n'): @@ -76,5 +76,19 @@ class ExtendedEsisBuilder(xml.dom.esis_builder.EsisBuilder): else: sys.stderr.write('Unknown event: %s\n' % line) + def push(self, node): + "Add node to current node and move to new node." + + nodetype = node.get_nodeType() + if self.current_element: + self.current_element.insertBefore(node, None) + elif nodetype == xml.dom.core.TEXT_NODE: + if string.strip(node.get_nodeValue()): + self.fragment.appendChild(node) + else: + self.fragment.appendChild(node) + if nodetype == xml.dom.core.ELEMENT_NODE: + self.current_element = node + def get_empties(self): return self.__empties.keys()