home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / phdoc222.zip / lib / minidom-example.txt < prev    next >
Text File  |  2002-10-14  |  2KB  |  65 lines

  1. import xml.dom.minidom
  2.  
  3. document = """\
  4. <slideshow>
  5. <title>Demo slideshow</title>
  6. <slide><title>Slide title</title>
  7. <point>This is a demo</point>
  8. <point>Of a program for processing slides</point>
  9. </slide>
  10.  
  11. <slide><title>Another demo slide</title>
  12. <point>It is important</point>
  13. <point>To have more than</point>
  14. <point>one slide</point>
  15. </slide>
  16. </slideshow>
  17. """
  18.  
  19. dom = xml.dom.minidom.parseString(document)
  20.  
  21. def getText(nodelist):
  22.     rc = ""
  23.     for node in nodelist:
  24.         if node.nodeType == node.TEXT_NODE:
  25.             rc = rc + node.data
  26.     return rc
  27.  
  28. def handleSlideshow(slideshow):
  29.     print "<html>"
  30.     handleSlideshowTitle(slideshow.getElementsByTagName("title")[0])
  31.     slides = slideshow.getElementsByTagName("slide")
  32.     handleToc(slides)
  33.     handleSlides(slides)
  34.     print "</html>"
  35.  
  36. def handleSlides(slides):
  37.     for slide in slides:
  38.        handleSlide(slide)
  39.  
  40. def handleSlide(slide):
  41.     handleSlideTitle(slide.getElementsByTagName("title")[0])
  42.     handlePoints(slide.getElementsByTagName("point"))
  43.  
  44. def handleSlideshowTitle(title):
  45.     print "<title>%s</title>" % getText(title.childNodes)
  46.  
  47. def handleSlideTitle(title):
  48.     print "<h2>%s</h2>" % getText(title.childNodes)
  49.  
  50. def handlePoints(points):
  51.     print "<ul>"
  52.     for point in points:
  53.         handlePoint(point)
  54.     print "</ul>"
  55.  
  56. def handlePoint(point):
  57.     print "<li>%s</li>" % getText(point.childNodes)
  58.  
  59. def handleToc(slides):
  60.     for slide in slides:
  61.         title = slide.getElementsByTagName("title")[0]
  62.         print "<p>%s</p>" % getText(title.childNodes)
  63.  
  64. handleSlideshow(dom)
  65.