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.getElementsByTagName
that will return a list with nodes. - Simply print out the length of the above list using
getLength
method.
Here is the XML file we are going to use as an input:
testFile.xml:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | <? 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:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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