1

I have a XML file .I read the file and modified something and now I want to write the output of that xml file into a excel. Could you guys please guide me how to do that.I mean I need to create another output xml file to store the result and then need to convert into excel or directly I can write the output to excel.Any leads will be helpfull

Here is My Java code

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;

public class App {

    static File[] sourceDir = null;
    static File[] targetDir = null;
    static String currDir = System.getProperty("user.dir"); 
    static int count=0;
  public static void main(String argv[]) {

      sourceDir = readDirectory(currDir + "\\Source");
      System.out.println("sourceDir::::::::"+sourceDir);
        targetDir = readDirectory(currDir + "\\Target");

    try {
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    //File fXmlFile = new File("D:\\Users\\gpadarth\\Desktop\\jyoti\\xml\\Log_MoveWorkers_467_1.xml");
    for(int i=0;i<sourceDir.length;i++){
    Document doc = dBuilder.parse(sourceDir[i]);
    System.out.println("doc::::"+doc);
    //optional, but recommended
    //read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
    doc.getDocumentElement().normalize();

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

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

    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;

            if( eElement.getElementsByTagName("Status").item(0).getTextContent().equals("Fail")){
            System.out.println("Employee_ID : " + eElement.getElementsByTagName("Employee_ID").item(0).getTextContent());
            System.out.println("Position_ID : " + eElement.getElementsByTagName("Position_ID").item(0).getTextContent());
            System.out.println("Status : " + eElement.getElementsByTagName("Status").item(0).getTextContent());
            System.out.println("Fault_String : " + eElement.getElementsByTagName("Fault_String").item(0).getTextContent());
            System.out.println("\n\n::::::::::::::::::::::::::::::::::::::::::::::::::");
        }}
    }
    count++;
    System.out.println("File  "+count+ "  Started ");
    } }catch (Exception e) {
    e.printStackTrace();
    }
  }

  private static File[] readDirectory(String dirToRead){
        File folder = new File(dirToRead);
        return folder.listFiles();
    }


}

1 Answers1

0

You should use apache poi to read or generate excel files

Sándor Juhos
  • 1,535
  • 1
  • 12
  • 19