mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
	
	
		
			65 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			65 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)
							 |