DocumentBuilderDocumentBuilderFactory
Count XML Elements in Java using DOM parser example
In this example we are going to see how to count elements with specific tag names using a DOM parser in Java.
Basically all you have to do in order to count elements in an XML elements is:
- Open and parse an XML Document using a
DocumentBuilder - Use
Document.getElementsByTagNamethat will return a list with nodes. - Simply print out the length of the above list using
getLengthmethod.
Here is the XML file we are going to use as an input:
testFile.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><company>
<employee id="10">
<lastname>Harley</lastname>
<email>james@example.org</email>
<department>Human Resources</department>
<salary>2000000</salary>
<address>34 Stanley St.</address>
</employee>
<employee id="2">
<firstname>John</firstname>
<lastname>May</lastname>
<email>john@example.org</email>
<department>Logistics</department>
<salary>400</salary>
</employee>
</company>Let’s take a look at the code:
CountXMLElementJava.java:
package com.javacodegeeks.java.core;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class CountXMLElementJava {
private static final String xmlfilepath = "C:\\Users\\nikos7\\Desktop\\filesForExamples\\testFile.xml";
public static void main(String argv[]) {
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(xmlfilepath);
NodeList nodeList = document.getElementsByTagName("employee");
System.out.println("Number of elements with tag name employee : " + nodeList.getLength());
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (SAXException sae) {
sae.printStackTrace();
}
}
}Output:
Number of elements with tag name employee : 2
