import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.InputSource;
import org.xml.sax.Attributes;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import java.io.FileReader;
public class HelloXML extends DefaultHandler {
 public void startDocument() {
    System.out.println("Inicio del documento");
 }
 public void endDocument() {
    System.out.println("Fin del documento");
 }
 public void startElement(String nameSpaceURI,String localName,
         String rawName, Attributes atts) {
       System.out.println("Tag :"+localName);
       if ("texto".equals(localName)){
         System.out.println("Propiedad formato:"+
          atts.getValue("formato"));
       }
 } 
 public void characters(char [] buffer,int inicio,int longitud) {
    System.out.println("Dato :"+new String(buffer,inicio,longitud));
 }

 public static void main(String [] args) {
   try {
//cargar la fabrica de analizadores sintacticos
       SAXParserFactory spf = SAXParserFactory.newInstance();
//cargar el analizador sintactico
       SAXParser sp = spf.newSAXParser();   
//cargar el archivo o documento XML a procesar
       InputSource input = new InputSource(new FileReader(args[0])); 
//crear una instancia del manejador de acciones semantica
       HelloXML manejador = new HelloXML();
//asociar el analizador sintactico con el documento XML y manejador
       sp.parse(input,manejador);
   } catch (Exception ex) {
      ex.printStackTrace();
   }//try
 }//main

}






