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)