Java XML Node Select selectElement(Node node, String uri, String nodeName)

Here you can find the source of selectElement(Node node, String uri, String nodeName)

Description

select Element

License

Apache License

Parameter

Parameter Description
root a parameter
uri a parameter
nodeName a parameter

Return

nodes with the constrain

Declaration

public static Element selectElement(Node node, String uri, String nodeName) 

Method Source Code

//package com.java2s;
/*/*from  ww w.j a v a 2 s  .  c  o m*/
 * Copyright  1999-2004 The Apache Software Foundation.
 *
 *  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;

public class Main {
    /**
     * @param root
     * @param uri
     * @param nodeName
     * @return nodes with the constrain
     */
    public static Element selectElement(Node node, String uri, String nodeName) {
        while (node != null) {
            if (nodeName.equals(node.getLocalName()) && uri.equals(node.getNamespaceURI()))
                return (Element) node;

            Element located = findElementinChilds(node, uri, nodeName);
            if (located != null) {
                return located;
            }
        }
        return null;
    }

    private static Element findElementinChilds(Node node, String uri, String nodeName) {

        for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
            if (child.getNodeType() == Node.ELEMENT_NODE) {
                Element childElement = (Element) child;

                if (nodeName.equals(childElement.getLocalName()) && uri.equals(childElement.getNamespaceURI())) {
                    return (Element) childElement;
                }
            }

            Element located = findElementinChilds(child, uri, nodeName);
            if (located != null) {
                return located;
            }
        }

        return null;
    }
}

Related

  1. selectNode(Node node, String tag)
  2. selectNode(Node sibling, String uri, String nodeName, int number)
  3. selectNode(Node sibling, String uri, String nodeName, int number)
  4. selectNode(Node sibling, String uri, String nodeName, int number)