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.
This commit is contained in:
parent
3d05b1a0ae
commit
3a7ff998ac
|
@ -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):
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue