diff options
Diffstat (limited to 'Demo/xml/elem_count.py')
-rw-r--r-- | Demo/xml/elem_count.py | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/Demo/xml/elem_count.py b/Demo/xml/elem_count.py deleted file mode 100644 index 99d6ca9..0000000 --- a/Demo/xml/elem_count.py +++ /dev/null @@ -1,42 +0,0 @@ -""" -A simple demo that reads in an XML document and displays the number of -elements and attributes as well as a tally of elements and attributes by name. -""" - -import sys -from collections import defaultdict - -from xml.sax import make_parser, handler - -class FancyCounter(handler.ContentHandler): - - def __init__(self): - self._elems = 0 - self._attrs = 0 - self._elem_types = defaultdict(int) - self._attr_types = defaultdict(int) - - def startElement(self, name, attrs): - self._elems += 1 - self._attrs += len(attrs) - self._elem_types[name] += 1 - - for name in attrs.keys(): - self._attr_types[name] += 1 - - def endDocument(self): - print("There were", self._elems, "elements.") - print("There were", self._attrs, "attributes.") - - print("---ELEMENT TYPES") - for pair in self._elem_types.items(): - print("%20s %d" % pair) - - print("---ATTRIBUTE TYPES") - for pair in self._attr_types.items(): - print("%20s %d" % pair) - -if __name__ == '__main__': - parser = make_parser() - parser.setContentHandler(FancyCounter()) - parser.parse(sys.argv[1]) |