Java XML Element Get getElementByName(Element ele, String name)

Here you can find the source of getElementByName(Element ele, String name)

Description

Get child element by name, ignoring namespace declarations

License

Apache License

Parameter

Parameter Description
ele parent element
name name of element to find

Declaration

public static Element getElementByName(Element ele, String name) 

Method Source Code

//package com.java2s;
/* ========================================================================
 * Copyright (c) 2010 The University of Washington
 *
 * 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.// w w w.  j  a  va  2s.c  o  m
 * ========================================================================
 */

import java.util.List;
import java.util.Vector;

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

public class Main {
    /**
     * Get child element by name, ignoring namespace declarations
     *
     * @param ele parent element
     * @param name name of element to find
     */
    public static Element getElementByName(Element ele, String name) {
        List<Element> list = getElementsByName(ele, name);
        if (list.size() > 0)
            return list.get(0);
        return null;
    }

    /**
     * Get child elements by name, ignoring namespace declarations
     *
     * @param ele parent element
     * @param name name of elements to find
     */
    public static List<Element> getElementsByName(Element ele, String name) {
        Vector<Element> list = new Vector();
        NodeList nl = ele.getChildNodes();
        for (int j = 0; j < nl.getLength(); j++) {
            if (nl.item(j).getNodeType() != Node.ELEMENT_NODE)
                continue;
            Element e = (Element) nl.item(j);
            String n = e.getNodeName();
            if (matches(n, name))
                list.add(e);
        }
        return (list);
    }

    /**
     * Simple compare of strings without namespace preface
     *
     * @param nsname name with possible ns preface
     * @param name name to compare
     */
    public static boolean matches(String nsname, String name) {
        int col = nsname.indexOf(":");
        if (col > 0)
            nsname = nsname.substring(col + 1);
        return (nsname.matches(name));
    }
}

Related

  1. getElementByClass(Element ele, String name)
  2. getElementByFilter(Document doc, NodeFilter filter)
  3. getElementByID(Element el, String id)
  4. getElementByID(Element el, String id)
  5. getElementById(Element element, String id)
  6. getElementByQualifiedName(Element n, String namespace, String elementName)
  7. getElementByTagName(Element current, String name)
  8. getElementByTagName(Element el, String tag)
  9. getElementByTagName(Element el, String tag)