XML::Xerces Sample: SAXCount
SAXCount is the simplest application that counts the elements and characters of a given XML file using the (event based) SAX API.
The SAXCount sample parses an XML file and prints out a count of the number of elements in the file. To run SAXCount, enter the following
perl SAXCount.pl <XML File>
The following parameters may be set from the command line
Usage: perl SAXCount.pl [options] <XML file | List file> This program invokes the SAX Parser, and then prints the number of elements, attributes, spaces and characters found in each XML file, using SAX API. Options: -l Indicate the input file is a List File that has a list of xml files. Default to off (Input file is an XML file). -v=xxx Validation scheme [always | never | auto*]. -n Enable namespace processing. Defaults to off. -s Enable schema processing. Defaults to off. -h Show this help. * = Default if not provided explicitly.
-v=always will force validation
-v=never will not use any validation
-v=auto will validate if a DOCTYPE declaration or a schema declaration is present in the XML document
Here is a sample output from SAXCount
cd samples perl SAXCount.pl -v=always personal.xml personal.xml: 60 ms (37 elems, 12 attrs, 134 spaces, 134 chars)
Running SAXCount with the validating parser gives a different result because ignorable white-space is counted separately from regular characters.
perl SAXCount.pl -v=never personal.xml personal.xml: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)
Note that the sum of spaces and characters in both versions is the same.