
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

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

class Loader extends DefaultHandler
{
	public void startElement(String uri, String localName, String qName, Attributes attr) throws SAXException
	{
		System.out.println("Start tag: " + qName);
	}

	public void endElement(String uri, String localName, String qName) throws SAXException
	{
		System.out.println("End tag: " + qName);
	}

	public void characters(char ch[], int start, int length) throws SAXException
	{
		String data = new String(ch, start, length);
		System.out.println("Data: " + data);
	}
}

public class SaxParser {

	public static void main(String args[])
	{
		if (args.length != 1)
		{
			System.err.println("Usage: java SaxParser <xmlfile>");
			System.exit(-1);
		}

		try
		{
			SAXParserFactory factory = SAXParserFactory.newInstance();
			SAXParser saxParser = factory.newSAXParser();

			DefaultHandler loader = new Loader();

			saxParser.parse(args[0], loader);

			// Í staðinn fyrir að lesa inn streng til að þátta er hægt
			// að láta þáttarann fá straum (InputStream), t.d.
			// saxParser.parse(gengi.openStream());

		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}
