/**********************************************************************************
*
* 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;
}
}