how to parse xml file in JAVA?
In this post I am going to show how we can parse the xml file in java and fetch the details present inside xml in our JAVA program. It can be helpful where you have large data and does not want to take input from user for the data. Parsing the JSON for data is better technique than xml parsing , but xml parsing is helpful when we dont want to use third party library in our project, because we have JAVA classes to parse the xml file.
We can parse the xml file using DOM parser, which treat xml tags as nodes of the tree and parse it node by node.
details.xml
<?xml version="0.1"?>
<employee>
<manager>
<firstname>Walter</firstname>
<lastname>White</lastname>
<SSID>12345</SSID>
<Phone>123456789</phone>
</manager>
<manager>
<firstname>Jesse</firstname>
<lastname>Pinkman</lastname>
<SSID>54321</SSID>
<Phone>987654321</phone>
</manager>
</employee>
// parse the file using Document Builder
// Get the list of elements with tag "manager"
// Iterate till the length of the tag "manager"
// If the node type is ELEMENT_NODE get all the items using tag name.
We can parse the xml file using DOM parser, which treat xml tags as nodes of the tree and parse it node by node.
details.xml
<?xml version="0.1"?>
<employee>
<manager>
<firstname>Walter</firstname>
<lastname>White</lastname>
<SSID>12345</SSID>
<Phone>123456789</phone>
</manager>
<manager>
<firstname>Jesse</firstname>
<lastname>Pinkman</lastname>
<SSID>54321</SSID>
<Phone>987654321</phone>
</manager>
</employee>
XmlParser.java
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
public class xmlParser {
public
void main(String args[]){
String file = args[0];
File configFile = new File(file);
configParser cp = new configParser();
cp.configXMLParse(configFile);
}
public
static class configParser {
public
void configXMLParse(File file){
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder
dBuilder = dbFactory.newDocumentBuilder();
Document document =
dBuilder.parse(file);
NodeList List =
document.getElementsByTagName("manager");
for (int i = 0; i < List.getLength();
i++) {
Node Node =
List.item(i);
System.out.println("\nCurrent Element
:" + Node.getNodeName());
if (Node.getNodeType()
== Node.ELEMENT_NODE) {
Element element = (Element) Node;
System.out.println("Manager
id : " + element.getAttribute("id"));
System.out.println("First
Name : " + element.getElementsByTagName("firstname").item(0).getTextContent());
System.out.println("Last
Name : " + element.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("SSID
: " + element.getElementsByTagName("SSID").item(0).getTextContent());
System.out.println("Phone
: " + element.getElementsByTagName("phone").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Comments
Post a Comment