Java XML Element Get by Name getFirstElementAtAnyDepthByNodeName(Element parent, String name)

Here you can find the source of getFirstElementAtAnyDepthByNodeName(Element parent, String name)

Description

Find the first element that is a child or subchild under a given Element parent.

License

Open Source License

Return

the element found, or null if it is not available

Declaration

public static Element getFirstElementAtAnyDepthByNodeName(Element parent, String name) 

Method Source Code

//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;
    }
}

Related

  1. getElementsByTagNameCaseInsensitive( Document doc, final Set lowerCaseNames)
  2. getElementValue(Element parent)
  3. getElementValue(Element parent, String tagName)
  4. getElementValue(Element parent, String tagName)
  5. getFirstElement(Element parent, String name)
  6. getFirstElementByName(Element parent, String name)
  7. getFirstElementByName(String name, Element parent)
  8. getFirstElementByTagName(Element parent, String tagName)
  9. getGrandSonElementByTagName(Element element, String parentName, String eleName)