From 3a7ff998aca0301659bb906d3631a4e02326615d Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Fri, 29 Jan 1999 21:31:12 +0000 Subject: fixup_descriptors(): Change the way we look for descriptor nodes; this takes 5 minutes off the conversion of the whole tree by reducing the number of tree-traversals from 14 to 1. --- Doc/tools/sgmlconv/docfixer.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Doc/tools/sgmlconv/docfixer.py b/Doc/tools/sgmlconv/docfixer.py index 0b73126..68fd4a3 100755 --- a/Doc/tools/sgmlconv/docfixer.py +++ b/Doc/tools/sgmlconv/docfixer.py @@ -131,10 +131,21 @@ DESCRIPTOR_ELEMENTS = ( ) def fixup_descriptors(doc): - for tagName in DESCRIPTOR_ELEMENTS: - nodes = find_all_elements(doc, tagName) - for node in nodes: - rewrite_descriptor(doc, node) + sections = find_all_elements(doc, "section") + for section in sections: + find_and_fix_descriptors(doc, section) + + +def find_and_fix_descriptors(doc, container): + children = container.childNodes + for child in children: + if child.nodeType == xml.dom.core.ELEMENT: + tagName = child.tagName + if tagName in DESCRIPTOR_ELEMENTS: + rewrite_descriptor(doc, child) + elif tagName == "subsection": + find_and_fix_descriptors(doc, child) + def rewrite_descriptor(doc, descriptor): # -- cgit v0.12