Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pradeepwebonise/7a1db3836611dcc4da0499f748906b36 to your computer and use it in GitHub Desktop.
Save pradeepwebonise/7a1db3836611dcc4da0499f748906b36 to your computer and use it in GitHub Desktop.
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.io.StringReader;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class XmlParser {
public String[] getTest() {
String xmlString = "<?xml version=\"1.0\"?>\n" +
"<rdcresult>\n" +
" <rdcschema>\n" +
" <rdccolumns>\n" +
" <rdcname>field0</rdcname>\n" +
" <rdctype>type0</rdctype>\n" +
" </rdccolumns>\n" +
" <rdccolumns>\n" +
" <rdcname>field1</rdcname>\n" +
" <rdctype>type1</rdctype>\n" +
" </rdccolumns>\n" +
" </rdcschema>\n" +
" <rdcdata>va1,val2</rdcdata>\n" +
"</rdcresult>\n";
Document doc = extractParser(xmlString);
NodeList nList = doc.getElementsByTagName("rdccolumns");
List<String> rdcnames = new LinkedList<String>();
List<String> rdctypes = new LinkedList<String>();
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
String name = eElement.getElementsByTagName("rdcname").item(0).getTextContent();
rdcnames.add(name);
System.out.println("rdcname : " + name);
String type = eElement.getElementsByTagName("rdctype").item(0).getTextContent();
rdctypes.add(type);
System.out.println("rdctype : " + type);
}
}
String rdcdata = doc.getElementsByTagName("rdcdata").item(0).getTextContent();
String[] stringArray = new String[4];
stringArray[0] = Arrays.toString(rdcnames.toArray());
stringArray[1] = Arrays.toString(rdctypes.toArray());
stringArray[2] = Arrays.toString(rdcdata.split(","));
System.out.println("stringArray: " + stringArray[0] + " \n " + stringArray[1] + "\n" + stringArray[2]);
return stringArray;
}
private Document extractParser(String xmlString) {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = null;
Document doc = null;
try {
dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(new InputSource(new StringReader(xmlString)));
} catch (ParserConfigurationException ex) {
ex.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
doc.getDocumentElement().normalize();
return doc;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment