import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;

public class SAXElementCoun{    
	int startTag = 0;
	public static String ele;
	public static void main(String args[])throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Enter XML file name:");
		String xmlFile = bf.readLine();
		File file = new File(xmlFile);
		if (file.exists()){
			System.out.print("Enter XML tag name:");
			ele = bf.readLine();
			SAXElementCount tagCount = new SAXElementCount(xmlFile);
		}
		else{
			System.out.println("File not found!");
		}
	}
	public SAXElementCount(String str){
		try{
			SAXParserFactory parserFact = SAXParserFactory.newInstance();
			SAXParser parser = parserFact.newSAXParser();
			DefaultHandler dHandler = new DefaultHandler(){
				public void startElement(String uri, String name, String element, Attributes atri)throws SAXException{
					if (element.equals(ele)){
						startTag++;
					}
				}
				public void endDocument(){
					System.out.println("Total elements: " + startTag);
				}
			};
			parser.parse(str,dHandler);
		}
		catch (Exception e){
			e.printStackTrace();
		}
	}
}