Tuesday 14 February 2017

Read xml file content


import java.io.*;
import java.nio.charset.Charset;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;

import org.w3c.dom.NodeList;

public class NewTest {

    public static void main(String[] args) throws IOException, SOAPException {

        String xmlInput = getTexFromXML("C:\\Inboud_testfile_before.xml");
        MessageFactory factory = MessageFactory.newInstance();
        SOAPMessage message = factory.createMessage(
                new MimeHeaders(),
                new ByteArrayInputStream(xmlInput.getBytes(Charset
                        .forName("UTF-8"))));
        SOAPBody body = message.getSOAPBody();
        getValue(body,"REC_MEME","MEME_CK",0);
    }

    private static String getTexFromXML(String xmlPath) {
        String xmlInput;
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(new File(xmlPath)));

            String line;
            StringBuilder sb = new StringBuilder();
            while ((line = br.readLine()) != null) {
                sb.append(line.trim());
            }
            xmlInput = sb.toString();
            return xmlInput;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return xmlPath;
    }

    public static void getValue(SOAPBody body, String parentNode, String childNode, Integer position)
    {
        NodeList returnList = body.getElementsByTagName(parentNode);
        for (int k = 0; k < returnList.getLength(); k++) {
            if(position==k) {
                NodeList innerResultList = returnList.item(k).getChildNodes();
                for (int l = 0; l < innerResultList.getLength(); l++) {
                    if (innerResultList.item(l).getNodeName()
                            .equalsIgnoreCase(childNode)) {
                        System.out.println(Integer.valueOf(innerResultList.item(l)
                                .getTextContent().trim()));
                    }
                }
            }
        }
    }
}