0

How to import XML data Using Java and store them into a Java List ?

I want to import data from an XML file and Store them into a List Java , Any idea about that ?

i want to save the data into a list private List<Book> books = new ArrayList<Book>();

My Xml file :

<trains>
  <train>
    <numTrain>TR123</numTrain>
    <villeDepart>Poitiers</villeDepart>
    <villeArrivee>Paris</villeArrivee>
    <heureDepart>1250</heureDepart>
  </train>
</trains>

My Code :

public class ReadXMLFile {


List<Train> trains = new ArrayList<Train>();



File fXmlFile = new File("/BookTrainRestWebServiceExercice2/src/main/java/soa/jaxrslabs/booktrainrestwebserviceexcercice2/TarinData.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);


doc.getDocumentElement().normalize();

System.out.println("Root element :" + doc.getDocumentElement().getNodeName());

NodeList nList = doc.getElementsByTagName("train");

System.out.println("----------------------------");

for (int temp = 0; temp < nList.getLength(); temp++) {

    Node nNode = nList.item(temp);

    System.out.println("\nCurrent Element :" + nNode.getNodeName());

    if (nNode.getNodeType() == Node.ELEMENT_NODE) {

        Element eElement = (Element) nNode;

    trains.add(new Train(eElement.getAttribute("numTrain"),
            eElement.getElementsByTagName("villeDepart").item(0).getTextContent(),
            "Ville d'arrivee : " + eElement.getElementsByTagName("villeArrivee").item(0).getTextContent(),
            eElement.getElementsByTagName("heureDepart").item(0).getTextContent()));


        System.out.println("Tarin num : " + eElement.getAttribute("numTrain"));
        System.out.println("Ville de depart : " + eElement.getElementsByTagName("villeDepart").item(0).getTextContent());
        System.out.println("Ville d'arrivee : " + eElement.getElementsByTagName("villeArrivee").item(0).getTextContent());
        System.out.println("Heure de depart : " + eElement.getElementsByTagName("heureDepart").item(0).getTextContent());

    }
    }
}
CooperShelly
  • 103
  • 2
  • 6
  • 12

0 Answers0