Get an Attribute from an Element. Returns an empty String if none found : DOM Attribute « XML « Java Tutorial






/**********************************************************************************
*
* Copyright (c) 2003, 2004 The Regents of the University of Michigan, Trustees of Indiana University,
*                  Board of Trustees of the Leland Stanford, Jr., University, and The MIT Corporation
*
* Licensed under the Educational Community License Version 1.0 (the "License");
* By obtaining, using and/or copying this Original Work, you agree that you have read,
* understand, and will comply with the terms and conditions of the Educational Community License.
* You may obtain a copy of the License at:
*
*      http://cvs.sakaiproject.org/licenses/license_1_0.html
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
* AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
**********************************************************************************/

import java.util.ArrayList;
import java.util.List;

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

public class Utils {
  /**
   * 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);
  }
  /**
   * 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;
  }
}








33.5.DOM Attribute
33.5.1.Set Attribute
33.5.2.Get Attribute
33.5.3.Get an Attribute from an Element. Returns an empty String if none found
33.5.4.Has Attribute
33.5.5.Output XML element Attributes
33.5.6.Find Element Or Create And Attribute
33.5.7.Find Element Or Create And Set Attribute
33.5.8.Returns the value of the attribute of the given element
33.5.9.Set an Attribute in an Element
33.5.10.Return a list of named Elements with a specific attribute value.
33.5.11.Encode Xml Attribute
33.5.12.Copy the attribues on one element to the other
33.5.13.An encoder for converting text to be used within XML attribute values
33.5.14.remove Attribute
33.5.15.return the right attribute node
33.5.16.return the value of the attribute of the given element with the given name
33.5.17.get all the attributes for an Element