Here you can find the source of getFirstElementAtAnyDepthByNodeName(Element parent, String name)
public static Element getFirstElementAtAnyDepthByNodeName(Element parent, String name)
//package com.java2s; /*//from w w w . j a v a2 s. co m * ? Copyright IBM Corp. 2012 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { /** * Find the first element that is a child or subchild under a given Element parent. So essentially * returning the first occurance of a given node anywhere in the parent elements child subtree. * * @return the element found, or null if it is not available */ public static Element getFirstElementAtAnyDepthByNodeName(Element parent, String name) { NodeList l = parent.getChildNodes(); int count = l.getLength(); for (int i = 0; i < count; i++) { Node n = l.item(i); if (n.getNodeType() == Node.ELEMENT_NODE) { Element e = (Element) n; String nodeName = e.getNodeName(); if (name.equals(nodeName)) { return e; } else { Element returnElement = getFirstElementAtAnyDepthByNodeName(e, name); if (null != returnElement) { return returnElement; } } } } return null; } }