Java tutorial
//package com.java2s; //License from project: Open Source License import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { public static List<Element> findElementsByAttribute(Element node, String tagName, String attrName, List<String> attrValues) { List<Element> result = new LinkedList<Element>(); NodeList nodeList = node.getChildNodes(); if (nodeList == null) { return result; } for (int i = 0; i < nodeList.getLength(); ++i) { Element element = checkIfElement(nodeList.item(i), tagName); if (element != null) { for (String value : attrValues) { if (element.getAttribute(attrName).equals(value)) { result.add(element); break; } } } } return result; } public static List<Element> findElementsByAttribute(Node node, String tagName, String attrName, String attrValue) { List<Element> result = new ArrayList<Element>(); NodeList nodeList = node.getChildNodes(); if (nodeList == null) { return result; } for (int i = 0; i < nodeList.getLength(); ++i) { Element element = checkIfElement(nodeList.item(i), tagName); if (element != null && element.getAttribute(attrName).equals(attrValue)) { result.add(element); } } return result; } public static final Element checkIfElement(Node node) { Element result = null; if (isElement(node)) { result = (Element) node; } return result; } public static final Element checkIfElement(Node node, String tag) { Element result = null; if (isElement(node)) { Element tmp = (Element) node; if (tag == null || tmp.getTagName().equals(tag)) { result = tmp; } } return result; } public static boolean isElement(Node node) { return node.getNodeType() == Node.ELEMENT_NODE; } }