Java XML Child Get getChild(final Element root, final String name)

Here you can find the source of getChild(final Element root, final String name)

Description

Return a named child relative to a supplied element.

License

Apache License

Parameter

Parameter Description
root the parent DOM element
name the name of a child element

Return

the child element of null if the child does not exist

Declaration

public static Element getChild(final Element root, final String name) 

Method Source Code

//package com.java2s;
/*/*w  w w  . j a  v a2  s  . c o m*/
 * Copyright 2004-2007 Stephen McConnell
 *
 * 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 java.util.ArrayList;

import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    /**
     * Return a named child relative to a supplied element.
     * @param root the parent DOM element
     * @param name the name of a child element
     * @return the child element of null if the child does not exist
     */
    public static Element getChild(final Element root, final String name) {
        if (null == root) {
            return null;
        }
        Element[] children = getChildren(root);
        for (int i = 0; i < children.length; i++) {
            Element child = children[i];
            //if( name.equals( child.getTagName() ) )
            if (name.equals(child.getLocalName())) {
                return child;
            } else if (name.equals(child.getTagName())) {
                return child;
            }
        }
        return null;
    }

    /**
     * Return all children matching the supplied element name.
     * @param root the parent DOM element
     * @param name the name against which child element will be matched
     * @return the array of child elements with a matching name
     */
    public static Element[] getChildren(final Element root, final String name) {
        if (null == root) {
            return new Element[0];
        }
        Element[] children = getChildren(root);
        final ArrayList<Element> result = new ArrayList<Element>();
        for (int i = 0; i < children.length; i++) {
            final Element child = children[i];
            if (name.equals(child.getLocalName())) {
                result.add(child);
            } else if (name.equals(child.getTagName())) {
                result.add(child);
            }
        }
        return (Element[]) result.toArray(new Element[0]);
    }

    /**
     * Return all children of the supplied parent.
     * @param root the parent DOM element
     * @return the array of all children
     */
    public static Element[] getChildren(final Element root) {
        if (null == root) {
            return new Element[0];
        }
        final NodeList list = root.getChildNodes();
        final int n = list.getLength();
        if (n < 1) {
            return new Element[0];
        }
        final ArrayList<Element> result = new ArrayList<Element>();
        for (int i = 0; i < n; i++) {
            final Node item = list.item(i);
            if (item instanceof Element) {
                result.add((Element) item);
            }
        }
        return (Element[]) result.toArray(new Element[0]);
    }
}

Related

  1. getChild(Element parent, String name)
  2. getChild(Element parentEl, String name)
  3. getChild(Element root, String... path)
  4. getChild(final Element element, final String tagName)
  5. getChild(final Element parent, final String tag)
  6. getChild(final Element root, final String name)
  7. getChild(Node n, String name)
  8. getChild(Node node, String name)
  9. getChild(Node node, String name)