Java XML Element Get by Attribute selectFirstElementByAttributeValueNS( String namespace, Element element, String name, String attribute, String value)

Here you can find the source of selectFirstElementByAttributeValueNS( String namespace, Element element, String name, String attribute, String value)

Description

Return the first named Element with a specific attribute value (namespace aware) namespace The namespace URI

License

Educational Community License

Parameter

Parameter Description
element the containing Element
name the tag name
attribute Attribute name
value Attribute value

Return

The first matching Element (null if none)

Declaration

public static Element selectFirstElementByAttributeValueNS(
        String namespace, Element element, String name,
        String attribute, String value) 

Method Source Code

//package com.java2s;
/**********************************************************************************
 *
 * Copyright (c) 2003, 2004, 2007, 2008 The Sakai Foundation
 *
 * Licensed under the Educational Community 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.opensource.org/licenses/ECL-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  ww.j a  v a2s.com*/
 *
 **********************************************************************************/

import java.util.*;

import org.w3c.dom.*;

public class Main {
    /**
     * Return the first named Element with a specific attribute
     * value (namespace aware)
     *
     * namespace The namespace URI
     * @param element the containing Element
     * @param name the tag name
     * @param attribute Attribute name
     * @param value Attribute value
     * @return The first matching Element (null if none)
     */
    public static Element selectFirstElementByAttributeValueNS(
            String namespace, Element element, String name,
            String attribute, String value) {
        ArrayList resultList;

        resultList = (ArrayList) selectElementsByAttributeValueNS(
                namespace, element, name, attribute, value, true);

        return (resultList.size() == 0) ? null : (Element) resultList
                .get(0);
    }

    /**
     * Return a list of named Elements with a specific attribute
     * value (namespace aware)
     *
     * @param namespace Namespace URI
     * @param element the containing Element
     * @param name the tag name
     * @param attribute Attribute name
     * @param value Attribute value
     * @return List of matching elements
     */
    public static List selectElementsByAttributeValueNS(String namespace,
            Element element, String name, String attribute, String value) {
        return selectElementsByAttributeValueNS(namespace, element, name,
                attribute, value, false);
    }

    /**
     * Return a list of named Elements with a specific attribute
     * value (namespace aware)
     *
     * @param namespace Namespace URI
     * @param element the containing Element
     * @param name the tag name
     * @param attribute Attribute name
     * @param value Attribute value
     * @param returnFirst Return only the first matching value?
     * @return List of matching elements
     */
    public static List selectElementsByAttributeValueNS(String namespace,
            Element element, String name, String attribute, String value,
            boolean returnFirst) {
        NodeList elementList = element.getElementsByTagNameNS(namespace,
                name);
        List resultList = new ArrayList();

        for (int i = 0; i < elementList.getLength(); i++) {
            if (getAttribute((Element) elementList.item(i), attribute)
                    .equals(value)) {
                resultList.add(elementList.item(i));
                if (returnFirst) {
                    break;
                }
            }
        }
        return resultList;
    }

    /**
     * Get an Attribute from an Element.  Returns an empty String if none found
     * @param element the containing Element
     * @param name the attribute name
     * @return Attribute as a String
     */
    public static String getAttribute(Element element, String name) {
        return element.getAttribute(name);
    }
}

Related

  1. getElementsWithAttributeEquals( Element root, String attribute, String value)
  2. getElementsWithAttributeEquals(Element root, String attribute, String value, List list)
  3. getElementWithAttribute(String tagName, String attribute, String attributeValue, Element searchIn)
  4. getElementWithAttributeNS(Element element, String namespaceURI, String attribute, String value)
  5. selectElementsByAttributeValue(Element element, String name, String attribute, String value, boolean returnFirst)