Questo programma di esempio è abbastanza realistico di come potrebbe essere un semplice programma. In questo particolare caso, non otteniamo particolare vantaggio dalla flessibilità del DOM.
import xml.dom.minidom document = """\ <slideshow> <title>Demo slideshow</title> <slide><title>Titolo della slide</title> <point>Questa è una demo</point> <point>Di un programma per elaborare slide</point> </slide> <slide><title>Altra demo slide</title> <point>E` importante</point> <point>Avere più di</point> <point>una 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)
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.