1.1 --- a/libxml2dom/__init__.py Thu Oct 13 17:55:59 2005 +0000
1.2 +++ b/libxml2dom/__init__.py Thu Oct 13 17:56:06 2005 +0000
1.3 @@ -266,6 +266,25 @@
1.4 def getElementsByTagNameNS(self, namespaceURI, localName):
1.5 return self.xpath("//ns:" + localName, namespaces={"ns" : namespaceURI})
1.6
1.7 + def normalize(self):
1.8 + text_nodes = []
1.9 + for node in self.childNodes:
1.10 + if node.nodeType == node.TEXT_NODE:
1.11 + text_nodes.append(node)
1.12 + elif len(text_nodes) != 0:
1.13 + self._normalize(text_nodes)
1.14 + text_nodes = []
1.15 + if len(text_nodes) != 0:
1.16 + self._normalize(text_nodes)
1.17 +
1.18 + def _normalize(self, text_nodes):
1.19 + texts = []
1.20 + for text_node in text_nodes[:-1]:
1.21 + texts.append(text_node.nodeValue)
1.22 + self.removeChild(text_node)
1.23 + texts.append(text_nodes[-1].nodeValue)
1.24 + self.replaceChild(self.ownerDocument.createTextNode("".join(texts)), text_nodes[-1])
1.25 +
1.26 # NOTE: normalize must be implemented specially for libxml2dom.
1.27
1.28 childNodes = property(_childNodes)