- From: <uche.ogbuji@fourthought.com>
- Date: Fri, 26 Feb 1999 22:36:02 -0700
- To: www-dom@w3.org
> On the other hand it's no big effort transforming a DOM tree with > whitespace text nodes into another one without them ... Correct. In fact, 4DOM comes with a simple helper function: DOM.Ext.Strip, which does this using the Level 2 NodeIterators. Here's the function, if anyone is interested. It's in Python, but it uses the strict DOM API and so should be quite readable to a non-Pythoneer: def Strip(start_node, skip_elements=["PRE", "STYLE", "SCRIPT"]): remove_list = [] snit = start_node.createSelectiveTreeIterator(DOM.DOMIF.Node.TW_TEXT) curr_node = snit.nextNode() while curr_node: #first of all make sure it is not inside one of the skip_elements ancestor = curr_node while ancestor != start_node: if ancestor.getNodeType() == DOM.DOMIF.Node.ELEMENT_NODE: if ancestor.getNodeName() in skip_elements: break ancestor = ancestor.getParentNode() else: curr_node.setData(string.strip(curr_node.getData())) if not len(curr_node.getData()): remove_list.append(curr_node) curr_node = snit.nextNode() for node_to_remove in remove_list: node_to_remove.getParentNode().removeChild(node_to_remove) return start_node -- Uche Ogbuji FourThought LLC, IT Consultants uche.ogbuji@fourthought.com (970)481-0805 Software engineering, project management, Intranets and Extranets http://FourThought.com http://OpenTechnology.org
Received on Saturday, 27 February 1999 00:32:42 UTC