Java tutorial
//package com.java2s; //License from project: GNU General Public License import java.util.ArrayList; import java.util.List; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { public static Element getChildElement(Element parent, String name) { return getChildElement(parent, name, false); } public static Element getChildElement(Element parent, String name, boolean strict) { List<Element> childElements = getChildElements(parent, name); if (strict && childElements.size() != 1) { throw new IllegalArgumentException("parent must contain exactly one element with the given name"); } return childElements.isEmpty() ? null : childElements.get(0); } /** * Convenience method for getting all child elements. * * @see #getChildElements(Element, String) */ public static List<Element> getChildElements(Element parent) { return getChildElements(parent, null); } /** * Gets the child elements of a parent element. Unlike DOM's getElementsByTagName, this does no recursion, * uses local name (namespace free) instead of tag name, result is a proper Java data structure and result * needs no casting. In other words, this method does not suck unlike DOM. * * @param parent the XML parent element * @param name name of the child elements, if null then all are returned */ public static List<Element> getChildElements(Element parent, String name) { List<Element> childElements = new ArrayList<Element>(); NodeList childNodes = parent.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { // get elements if (childNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { // match element name Element childElement = (Element) childNodes.item(i); if (name == null || childElement.getLocalName().equals(name)) { childElements.add(childElement); } } } return childElements; } }