GNU Info

Info Node: (python2.1-lib.info)DOM Example

(python2.1-lib.info)DOM Example


Next: minidom and the DOM standard Prev: DOM objects Up: xml.dom.minidom
Enter node , (file) or (file)node

DOM Example
-----------

This example program is a fairly realistic example of a simple program.
In this particular case, we do not take much advantage of the
flexibility of the DOM.

     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)
     
     space = " "
     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)


automatically generated by info2www version 1.2.2.9