diff options
author | Fred Drake <fdrake@acm.org> | 2000-10-16 15:27:05 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2000-10-16 15:27:05 (GMT) |
commit | ac5f7483e8f0ae21e3b565e4d7d97c99898817f7 (patch) | |
tree | 20cc9f2cbca9d874c48482ffce8620f39272b2fa /Demo/xml/elem_count.py | |
parent | f155170f09a908da985c6a525797f3a6016b2c89 (diff) | |
download | cpython-ac5f7483e8f0ae21e3b565e4d7d97c99898817f7.zip cpython-ac5f7483e8f0ae21e3b565e4d7d97c99898817f7.tar.gz cpython-ac5f7483e8f0ae21e3b565e4d7d97c99898817f7.tar.bz2 |
Demos of the new XML support from Lars Marius Garshol <larsga@garshol.priv.no>.
Diffstat (limited to 'Demo/xml/elem_count.py')
-rw-r--r-- | Demo/xml/elem_count.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Demo/xml/elem_count.py b/Demo/xml/elem_count.py new file mode 100644 index 0000000..4316199 --- /dev/null +++ b/Demo/xml/elem_count.py @@ -0,0 +1,36 @@ +import sys + +from xml.sax import make_parser, handler + +class FancyCounter(handler.ContentHandler): + + def __init__(self): + self._elems = 0 + self._attrs = 0 + self._elem_types = {} + self._attr_types = {} + + def startElement(self, name, attrs): + self._elems = self._elems + 1 + self._attrs = self._attrs + len(attrs) + self._elem_types[name] = self._elem_types.get(name, 0) + 1 + + for name in attrs.keys(): + self._attr_types[name] = self._attr_types.get(name, 0) + 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 + + +parser = make_parser() +parser.setContentHandler(FancyCounter()) +parser.parse(sys.argv[1]) |