mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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)
 |