Scott David Daniels wrote: > William Purcell wrote: >> I am writing a application to calculate pressure drop for a piping >> network. Namely a building sprinkler system. This will be a >> command line program at first with the system described in xml.... > > If you are going to be doing a lot of tree walking, try etree. > Simple example: > > import xml.etree.ElementTree as ET # or wherever you get ElementTree > > def find_remote_and_path(node, path): > for child in node: > for result in walks(child, path + [node]): yield result > if node.tag == 'node' and node.get('hydraulically_most_remote' > ) == 'True': > yield node, path > > > tree = ET.parse('ex.xml') > for node, path in find_remote_and_path(tree.getroot(), []): > for t in path: > print ' ', t.tag, t.get('id', '-') > print node.tag, ', '.join(sorted('%s=%r' % pair > for pair in node.items())) > > > --Scott David Daniels > scott.dani...@acm.org
Scott, Thanks for the reply. I am having a little trouble finding where to import `walks` from. Bill -- http://mail.python.org/mailman/listinfo/python-list