Java XML Child Get by Name getChildElement(final Element parent, final String ns, final String localName)

Here you can find the source of getChildElement(final Element parent, final String ns, final String localName)

Description

Get the first child element matching the local name and namespace

License

Apache License

Parameter

Parameter Description
parent The element for which to locate the child
ns The namespace to match, or null for any namespace
localName The local name to match, or null for any local name

Return

The first child matching the criteria

Declaration

public static Element getChildElement(final Element parent, final String ns, final String localName) 

Method Source Code

//package com.java2s;
/*/*from   www .j av  a  2 s . co m*/
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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 java.util.List;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    /**
     * Get the first child element matching the local name and namespace
     * 
     * @param parent
     *            The element for which to locate the child
     * @param ns
     *            The namespace to match, or null for any namespace
     * @param localName
     *            The local name to match, or null for any local name
     * @return The first child matching the criteria
     */
    public static Element getChildElement(final Element parent, final String ns, final String localName) {
        List<Element> elements = getChildElements(parent);

        for (Element element : elements) {
            if ((ns == null || ns.equals(element.getNamespaceURI())
                    && (localName == null || localName.equals(element.getLocalName())))) {
                return element;
            }
        }

        return null;
    }

    /**
     * Get all child elements for the element
     * 
     * @param elm
     *            The element for which to locate children
     * @return All children
     */
    public static List<Element> getChildElements(final Element elm) {
        List<Element> elements = new ArrayList<Element>();
        NodeList childs = elm.getChildNodes();
        for (int i = 0; i < childs.getLength(); i++) {
            Node child = childs.item(i);

            if (child instanceof Element) {
                elements.add((Element) child);
            }
        }

        return elements;
    }
}

Related

  1. getChildElement(Element parentElement, String tagName)
  2. getChildElement(Element root, String name)
  3. getChildElement(Element root, String name, boolean mandatory)
  4. getChildElement(final Element element, final String namespace, final String tagName)
  5. getChildElement(final Element parent, final String childName)
  6. getChildElement(final Node parent, final String name)
  7. getChildElement(final Node parentNode, final String childNodeName)
  8. getChildElement(Node node)
  9. getChildElement(Node node, String childName)