[code.view]

[top] / python / PyMOTW / xml / etree / ElementTree / ElementTree_show_all_events.py

     #!/usr/bin/env python
     # encoding: utf-8
     #
     # Copyright (c) 2010 Doug Hellmann.  All rights reserved.
     #
     """Show the events encountered while processing an XML input
     """
     #end_pymotw_header
     
     from xml.etree.ElementTree import iterparse
     
     depth = 0
     prefix_width = 8
     prefix_dots = '.' * prefix_width
     line_template = '{prefix:<0.{prefix_len}}{event:<8}{suffix:<{suffix_len}} {node.tag:<12} {node_id}'
     
     for (event, node) in iterparse('podcasts.opml', ['start', 'end', 'start-ns', 'end-ns']):
         if event == 'end':
             depth -= 1
     
         prefix_len = depth * 2
         
         print line_template.format(prefix=prefix_dots,
                                    prefix_len=prefix_len,
                                    suffix='',
                                    suffix_len=(prefix_width - prefix_len),
                                    node=node,
                                    node_id=id(node),
                                    event=event,
                                    )
         
         if event == 'start':
             depth += 1
     

[top] / python / PyMOTW / xml / etree / ElementTree / ElementTree_show_all_events.py

contact | logmethods.com