import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
import java.io.FileInputStream;

public class StAXPrintAttributes {
  public static void main(String[] args) {

  try {
    FileInputStream inputStream = new FileInputStream("../mondial.xml");
    XMLInputFactory inputFactory = XMLInputFactory.newInstance();
    XMLStreamReader parser = inputFactory.createXMLStreamReader(inputStream);
    boolean goOn = true;

    while (goOn) {
      int eventtype = parser.next();
      switch(eventtype) {
        case XMLStreamConstants.END_DOCUMENT:
          goOn = false;
          break;   // << break after each case!

        // continue next page

        case XMLStreamConstants.START_ELEMENT:
          if (parser.getAttributeCount() > 0) {
            System.out.println(parser.getLocalName());
            for (int i = 0; i < parser.getAttributeCount(); i++) {
    	      System.out.println(" - attribute: '" + parser.getAttributeLocalName(i)
                                 + "' value: '" + parser.getAttributeValue(i)
  	                       + "' type: '"  + parser.getAttributeType(i));
            }
          }
          break;
        // cases for endElement(), startDocument(), endDocument() omitted
        case XMLStreamConstants.CHARACTERS:
          String textString = parser.getText();
          if (textString.contains("Göttingen"))
               goOn = false;
      }
    }
    System.out.println(" ... Göttingen found - ready.");
    parser.close();
  } catch (Exception e) { e.printStackTrace(); }
}}
