<students>
<student>
<age>20</age>
<grade>12</grade>
</student>
<student>
<age>21</age>
<grade>11</grade>
</student>
</students>
<dependencies>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>aalto-xml</artifactId>
<version>1.3.0</version>
</dependency>
</dependencies>
import com.fasterxml.aalto.*;
import javax.xml.stream.*;
import java.io.FileInputStream;
public class XmlParser {
public static void main(String[] args) {
try {
XMLInputFactory factory = new InputFactoryImpl();
FileInputStream fileInputStream = new FileInputStream("students.xml");
XMLStreamReader reader = factory.createXMLStreamReader(fileInputStream);
while (reader.hasNext()) {
int event = reader.next();
if (event == XMLStreamReader.START_ELEMENT) {
if (reader.getLocalName().equals("student")) {
String name = null;
int age = 0;
int grade = 0;
while (reader.hasNext()) {
event = reader.next();
if (event == XMLStreamReader.START_ELEMENT) {
if (reader.getLocalName().equals("name")) {
reader.next();
name = reader.getText();
}
if (reader.getLocalName().equals("age")) {
reader.next();
age = Integer.parseInt(reader.getText());
}
if (reader.getLocalName().equals("grade")) {
reader.next();
grade = Integer.parseInt(reader.getText());
}
}
if (event == XMLStreamReader.END_ELEMENT) {
if (reader.getLocalName().equals("student")) {
Student student = new Student(name, age, grade);
processStudent(student);
break;
}
}
}
}
}
}
reader.close();
fileInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void processStudent(Student student) {
System.out.println("-----------------------");
}
}
class Student {
private String name;
private int age;
private int grade;
public Student(String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getGrade() {
return grade;
}
}