I am new to Java and XML and i need to fetch some data from an xml file.
Here is my xml
<?xml version="1.0" encoding="UTF-8"?>
<course name="BSc (Hons) Software Engineering" version="5.0" type="FT" lowerbound="2012" upperbound="2014" >
<year id="1">
<semester id="1">
<module>
<code>HCA1105C</code>
<name>Computer Architecture</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>PROG1115C</code>
<name>Object Oriented Software Development I</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MATH1103C</code>
<name>Decision Mathematics</name>
<credits>3</credits>
<hrs_per_wk>2+1</hrs_per_wk>
</module>
<module>
<code>ITE1107C</code>
<name>Language and Communication Seminar</name>
<credits>3</credits>
<hrs_per_wk>2+1</hrs_per_wk>
</module>
<module>
<code>MGMT1101C</code>
<name>Management Seminar</name>
<credits>3</credits>
<hrs_per_wk>2+1</hrs_per_wk>
</module>
</semester>
<semester id="2">
<module>
<code>PROG1116C</code>
<name>Object Oriented Software Development II</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>WAT1116C</code>
<name>Internet Programming I</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MATH1101C</code>
<name>Analytic Methods for Computing</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>DBT1111C</code>
<name>Database Design</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
</semester>
</year>
<year id="2">
<semester id="1">
<module>
<code>CAN2112C</code>
<name>Network Design & Programming</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>WAT2117C</code>
<name>Internet Programming II</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>OSS2109C</code>
<name>Operating Systems</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>PROG2117C</code>
<name>Desktop Application Development</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
</semester>
<semester id="2">
<module>
<code>SDT2114C</code>
<name>Requirements Engineering</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MATH2323C</code>
<name>Numerical Methods</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MCT2104C</code>
<name>Mobile Application Development</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MCT2104C</code>
<name>Mobile Application Development</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>WAT2124C</code>
<name>Web Services</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MGMT2104C</code>
<name>Research & Development Seminar</name>
<credits>3</credits>
<hrs_per_wk>2+1</hrs_per_wk>
</module>
</semester>
</year>
<year id="3">
<semester id="1">
<module>
<code>SECU3119C</code>
<name>Secure Software Development</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MULT3114C</code>
<name>Game Development</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>SEM3112C</code>
<name>Project Management Seminar</name>
<credits>3</credits>
<hrs_per_wk>2+1</hrs_per_wk>
</module>
</semester>
<semester id="2">
<module>
<code>SDT3104C</code>
<name>Enterprise Software Development</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>WAT3125C</code>
<name>Emerging Web Technologies</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>SEM3113C</code>
<name>Software Quality Management</name>
<credits>4</credits>
<hrs_per_wk>2+2</hrs_per_wk>
</module>
<module>
<code>MGMT3105C</code>
<name>Entrepreneurship Seminar</name>
<credits>3</credits>
<hrs_per_wk>2+1</hrs_per_wk>
</module>
<module>
<code>PROJ3105C</code>
<name>Systems Development Project</name>
<credits>9</credits>
<hrs_per_wk />
</module>
</semester>
</year>
</course>
Lets say that i want to get all modules code that are in semester 1 year 1.
HCA1105C
PROG1115C
MATH1103C
ITE1107C
MGMT1101C
Here is my code so far
try {
File inputFile = new File(System.getProperty("user.dir") + "/courses/bse.xml");
DocumentBuilderFactory dbFactory
= DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("year");
for (int i = 0; i < nList.getLength(); i++) {
Node nNode = nList.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
//if (Integer.parseInt(eElement.getAttribute("id")) == 1 ) {
System.out.println(eElement.getElementsByTagName("code").item(0).getTextContent());
//}
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Fatal Error", JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
I get the following output
HCA1105C
CAN2112C
SECU3119C