package xmldom;

import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SAX {
	private static final class Count extends DefaultHandler {
		int nr=0;
		Set<String> tags = new HashSet<>();
		@Override
		public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
			System.out.println("uri: "+uri);
			System.out.println("localName: "+localName);
			System.out.println("qName: "+qName);
			nr++;
			tags.add(localName);
		}
		
		@Override
		public void characters(char[] ch, int start, int length) throws SAXException {
			// TODO Auto-generated method stub
			System.out.println("TEXT: "+new String(ch, start, length));
		}
	}

	public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException {
		var fac = SAXParserFactory.newInstance() ;
		fac.setNamespaceAware(true);
		Count dh = new Count();
		fac.newSAXParser()
		.parse(new File("/home/panitz/neuesSkript.xml"), dh);
		System.out.println(dh.nr+" "+dh.tags);
	}
}
