Java XML Element Get by Attribute selectElementsByAttributeValue(Element element, String name, String attribute, String value, boolean returnFirst)

Here you can find the source of selectElementsByAttributeValue(Element element, String name, String attribute, String value, boolean returnFirst)

Description

Return a list of named Elements with a specific attribute value.

License

Educational Community License

Parameter

Parameter Description
element the containing Element
name the tag name
attribute Attribute name
value Attribute value
returnFirst Return only the first matching value?

Return

List of matching elements

Declaration

public static List selectElementsByAttributeValue(Element element,
        String name, String attribute, String value, boolean returnFirst) 

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 a  2 s. com*/
 *
 **********************************************************************************/

import java.util.*;

import org.w3c.dom.*;

public class Main {
    /**
     * Return a list of named Elements with a specific attribute value.
     * @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 selectElementsByAttributeValue(Element element,
            String name, String attribute, String value) {
        return selectElementsByAttributeValue(element, name, attribute,
                value, false);
    }

    /**
     * Return a list of named Elements with a specific attribute value.
     * @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 selectElementsByAttributeValue(Element element,
            String name, String attribute, String value, boolean returnFirst) {
        NodeList elementList = element.getElementsByTagName(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. getElementsWithAttribute(Element element, String namespaceURI, String localName, String value, Collection elements)
  2. getElementsWithAttributeEquals( Element root, String attribute, String value)
  3. getElementsWithAttributeEquals(Element root, String attribute, String value, List list)
  4. getElementWithAttribute(String tagName, String attribute, String attributeValue, Element searchIn)
  5. getElementWithAttributeNS(Element element, String namespaceURI, String attribute, String value)
  6. selectFirstElementByAttributeValueNS( String namespace, Element element, String name, String attribute, String value)