mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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) |