mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Move the long minidom example to a separate file; \verbatiminput does the
right thing with page breaks in long examples, while the verbatim environment does not. This causes the example to wrap to the next page instead of overwriting the page footer and bottom margin.
This commit is contained in:
		
							parent
							
								
									cb6d0da04e
								
							
						
					
					
						commit
						b86677079d
					
				
					 2 changed files with 66 additions and 67 deletions
				
			
		
							
								
								
									
										65
									
								
								Doc/lib/minidom-example.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								Doc/lib/minidom-example.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,65 @@ | |||
| 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) | ||||
|  | @ -143,73 +143,7 @@ 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. | ||||
| 
 | ||||
| \begin{verbatim} | ||||
| 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) | ||||
| \end{verbatim} | ||||
| \verbatiminput{minidom-example.py} | ||||
| 
 | ||||
| 
 | ||||
| \subsection{minidom and the DOM standard \label{minidom-and-dom}} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fred Drake
						Fred Drake