| import xml.dom.minidom | 
 |  | 
 | document = """\ | 
 | <slideshow> | 
 | <title>Demo slideshow</title> | 
 | <slide><title>Slide title</title> | 
 | <point>This is a demo</point> | 
 | <point>Of a program for processing slides</point> | 
 | </slide> | 
 |  | 
 | <slide><title>Another demo slide</title> | 
 | <point>It is important</point> | 
 | <point>To have more than</point> | 
 | <point>one slide</point> | 
 | </slide> | 
 | </slideshow> | 
 | """ | 
 |  | 
 | dom = xml.dom.minidom.parseString(document) | 
 |  | 
 | def getText(nodelist): | 
 |     rc = "" | 
 |     for node in nodelist: | 
 |         if node.nodeType == node.TEXT_NODE: | 
 |             rc = rc + node.data | 
 |     return rc | 
 |  | 
 | def handleSlideshow(slideshow): | 
 |     print "<html>" | 
 |     handleSlideshowTitle(slideshow.getElementsByTagName("title")[0]) | 
 |     slides = slideshow.getElementsByTagName("slide") | 
 |     handleToc(slides) | 
 |     handleSlides(slides) | 
 |     print "</html>" | 
 |  | 
 | def handleSlides(slides): | 
 |     for slide in slides: | 
 |         handleSlide(slide) | 
 |  | 
 | def handleSlide(slide): | 
 |     handleSlideTitle(slide.getElementsByTagName("title")[0]) | 
 |     handlePoints(slide.getElementsByTagName("point")) | 
 |  | 
 | def handleSlideshowTitle(title): | 
 |     print "<title>%s</title>" % getText(title.childNodes) | 
 |  | 
 | def handleSlideTitle(title): | 
 |     print "<h2>%s</h2>" % getText(title.childNodes) | 
 |  | 
 | def handlePoints(points): | 
 |     print "<ul>" | 
 |     for point in points: | 
 |         handlePoint(point) | 
 |     print "</ul>" | 
 |  | 
 | def handlePoint(point): | 
 |     print "<li>%s</li>" % getText(point.childNodes) | 
 |  | 
 | def handleToc(slides): | 
 |     for slide in slides: | 
 |         title = slide.getElementsByTagName("title")[0] | 
 |         print "<p>%s</p>" % getText(title.childNodes) | 
 |  | 
 | handleSlideshow(dom) |