Changeset 388 for python/vendor/current/Demo/xml
- Timestamp:
- Mar 19, 2014, 11:11:30 AM (11 years ago)
- Location:
- python/vendor/current/Demo/xml
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
python/vendor/current/Demo/xml/elem_count.py
r2 r388 1 """ 2 A simple demo that reads in an XML document and displays the number of 3 elements and attributes as well as a tally of elements and attributes by name. 4 """ 5 1 6 import sys 7 from collections import defaultdict 2 8 3 9 from xml.sax import make_parser, handler … … 8 14 self._elems = 0 9 15 self._attrs = 0 10 self._elem_types = {}11 self._attr_types = {}16 self._elem_types = defaultdict(int) 17 self._attr_types = defaultdict(int) 12 18 13 19 def startElement(self, name, attrs): 14 self._elems = self._elems +115 self._attrs = self._attrs +len(attrs)16 self._elem_types[name] = self._elem_types.get(name, 0) +120 self._elems += 1 21 self._attrs += len(attrs) 22 self._elem_types[name] += 1 17 23 18 24 for name in attrs.keys(): 19 self._attr_types[name] = self._attr_types.get(name, 0) +125 self._attr_types[name] += 1 20 26 21 27 def endDocument(self): … … 31 37 print "%20s %d" % pair 32 38 33 34 parser = make_parser()35 parser.setContentHandler(FancyCounter())36 parser.parse(sys.argv[1])39 if __name__ == '__main__': 40 parser = make_parser() 41 parser.setContentHandler(FancyCounter()) 42 parser.parse(sys.argv[1]) -
python/vendor/current/Demo/xml/roundtrip.py
r2 r388 4 4 """ 5 5 6 import sys , string6 import sys 7 7 8 8 from xml.sax import saxutils, handler, make_parser … … 12 12 class ContentGenerator(handler.ContentHandler): 13 13 14 def __init__(self, out =sys.stdout):14 def __init__(self, out=sys.stdout): 15 15 handler.ContentHandler.__init__(self) 16 16 self._out = out … … 41 41 # --- The main program 42 42 43 parser = make_parser() 44 parser.setContentHandler(ContentGenerator()) 45 parser.parse(sys.argv[1]) 43 if __name__ == '__main__': 44 parser = make_parser() 45 parser.setContentHandler(ContentGenerator()) 46 parser.parse(sys.argv[1]) -
python/vendor/current/Demo/xml/rss2html.py
r2 r388 1 """ 2 A demo that reads in an RSS XML document and emits an HTML file containing 3 a list of the individual items in the feed. 4 """ 5 1 6 import sys 7 import codecs 2 8 3 9 from xml.sax import make_parser, handler … … 5 11 # --- Templates 6 12 7 top = \ 8 """ 13 top = """\ 9 14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 10 <HTML> 11 <HEAD> 12 <TITLE>%s</TITLE> 13 </HEAD> 15 <html> 16 <head> 17 <title>%s</title> 18 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 19 </head> 14 20 15 < BODY>16 < H1>%s</H1>21 <body> 22 <h1>%s</h1> 17 23 """ 18 24 19 bottom = \ 20 """ 25 bottom = """ 21 26 </ul> 22 27 23 < HR>24 < ADDRESS>25 Converted to HTML by sax_rss2html.py.26 </ ADDRESS>28 <hr> 29 <address> 30 Converted to HTML by rss2html.py. 31 </address> 27 32 28 </ BODY>29 </ HTML>33 </body> 34 </html> 30 35 """ 31 36 … … 34 39 class RSSHandler(handler.ContentHandler): 35 40 36 def __init__(self, out =sys.stdout):41 def __init__(self, out=sys.stdout): 37 42 handler.ContentHandler.__init__(self) 38 self._out = out43 self._out = codecs.getwriter('utf-8')(out) 39 44 40 45 self._text = "" 41 46 self._parent = None 42 self._list_started = 047 self._list_started = False 43 48 self._title = None 44 49 self._link = None … … 70 75 if not self._list_started: 71 76 self._out.write("<ul>\n") 72 self._list_started = 177 self._list_started = True 73 78 74 79 self._out.write(' <li><a href="%s">%s</a> %s\n' % … … 87 92 # --- Main program 88 93 89 parser = make_parser() 90 parser.setContentHandler(RSSHandler()) 91 parser.parse(sys.argv[1]) 94 if __name__ == '__main__': 95 parser = make_parser() 96 parser.setContentHandler(RSSHandler()) 97 parser.parse(sys.argv[1])
Note:
See TracChangeset
for help on using the changeset viewer.