Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Demo/xml/elem_count.py

    r2 r391  
     1"""
     2A simple demo that reads in an XML document and displays the number of
     3elements and attributes as well as a tally of elements and attributes by name.
     4"""
     5
    16import sys
     7from collections import defaultdict
    28
    39from xml.sax import make_parser, handler
     
    814        self._elems = 0
    915        self._attrs = 0
    10         self._elem_types = {}
    11         self._attr_types = {}
     16        self._elem_types = defaultdict(int)
     17        self._attr_types = defaultdict(int)
    1218
    1319    def startElement(self, name, attrs):
    14         self._elems = self._elems + 1
    15         self._attrs = self._attrs + len(attrs)
    16         self._elem_types[name] = self._elem_types.get(name, 0) + 1
     20        self._elems += 1
     21        self._attrs += len(attrs)
     22        self._elem_types[name] += 1
    1723
    1824        for name in attrs.keys():
    19             self._attr_types[name] = self._attr_types.get(name, 0) + 1
     25            self._attr_types[name] += 1
    2026
    2127    def endDocument(self):
     
    3137            print "%20s %d" % pair
    3238
    33 
    34 parser = make_parser()
    35 parser.setContentHandler(FancyCounter())
    36 parser.parse(sys.argv[1])
     39if __name__ == '__main__':
     40    parser = make_parser()
     41    parser.setContentHandler(FancyCounter())
     42    parser.parse(sys.argv[1])
Note: See TracChangeset for help on using the changeset viewer.