| Server IP : 64.202.187.69 / Your IP : 216.73.217.74 Web Server : Apache System : Linux 69.187.202.64.host.secureserver.net 3.10.0-1160.144.1.el7.tuxcare.els6.x86_64 #1 SMP Fri May 29 16:22:24 UTC 2026 x86_64 User : transmarket ( 1001) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib64/python2.7/Demo/xml/ |
Upload File : |
"""
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])