Java XML Element Find findAllElementsByTagNameNS(Element el, String nameSpaceURI, String localName, List elementList)

Here you can find the source of findAllElementsByTagNameNS(Element el, String nameSpaceURI, String localName, List elementList)

Description

find All Elements By Tag Name NS

License

Apache License

Declaration

private static void findAllElementsByTagNameNS(Element el, String nameSpaceURI, String localName,
            List<Element> elementList) 

Method Source Code

//package com.java2s;
/**//from  w  w  w .jav  a 2s  . c  om
 * 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.LinkedList;
import java.util.List;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

public class Main {
    public static List<Element> findAllElementsByTagNameNS(Element elem, String nameSpaceURI, String localName) {
        List<Element> ret = new LinkedList<Element>();
        findAllElementsByTagNameNS(elem, nameSpaceURI, localName, ret);
        return ret;
    }

    private static void findAllElementsByTagNameNS(Element el, String nameSpaceURI, String localName,
            List<Element> elementList) {

        if (localName.equals(el.getLocalName()) && nameSpaceURI.contains(el.getNamespaceURI())) {
            elementList.add(el);
        }
        Element elem = getFirstElement(el);
        while (elem != null) {
            findAllElementsByTagNameNS(elem, nameSpaceURI, localName, elementList);
            elem = getNextElement(elem);
        }
    }

    /**
     * Get the first direct child with a given type
     */
    public static Element getFirstElement(Node parent) {
        Node n = parent.getFirstChild();
        while (n != null && Node.ELEMENT_NODE != n.getNodeType()) {
            n = n.getNextSibling();
        }
        if (n == null) {
            return null;
        }
        return (Element) n;
    }

    public static Element getNextElement(Element el) {
        Node nd = el.getNextSibling();
        while (nd != null) {
            if (nd.getNodeType() == Node.ELEMENT_NODE) {
                return (Element) nd;
            }
            nd = nd.getNextSibling();
        }
        return null;
    }
}

Related

  1. findAllElementsByTagName(Element elem, String tagName)
  2. findComponentElement(Element root)
  3. findComponentElement(Element root)
  4. findElement(Element element, String elementName)
  5. findElement(Element element, String name)