home *** CD-ROM | disk | FTP | other *** search
- 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)
-