Java XML Element Get by Attribute findAllElementsByAttributes(Element node, String tagName, String attrName, List attrValues)

Here you can find the source of findAllElementsByAttributes(Element node, String tagName, String attrName, List attrValues)

Description

find All Elements By Attributes

License

Open Source License

Declaration

public static List<Element> findAllElementsByAttributes(Element node, String tagName, String attrName,
            List<String> attrValues) 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

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 Main {
    public static List<Element> findAllElementsByAttributes(Element node, String tagName, String attrName,
            List<String> attrValues) {
        List<Element> result = new ArrayList<Element>();
        findAllElementsByAttributes(node, tagName, attrName, attrValues, result);
        return result;
    }/*from  w w  w  .java 2s .  c  o  m*/

    private static void findAllElementsByAttributes(Node node, String tagName, String attrName,
            List<String> attrValues, List<Element> result) {
        if (node == null) {
            return;
        }
        NodeList nodeList = node.getChildNodes();
        if (nodeList == null) {
            return;
        }
        for (int i = 0; i < nodeList.getLength(); ++i) {
            Node currNode = nodeList.item(i);
            Element element = checkIfElement(currNode, tagName);
            if (element != null) {
                for (String value : attrValues) {
                    if (element.getAttribute(attrName).equals(value)) {
                        result.add(element);
                        break;
                    }
                }
            }
            findAllElementsByAttributes(currNode, tagName, attrName, attrValues, 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;
    }
}

Related

  1. findAllElementsByAttribute(Node node, String tagName, String attrName, String attrValue)
  2. findComponent(Element element, String attributeValue)
  3. findElement(Element element, String elementName, String attributeValue)
  4. findElement(Element parent, String elementNS, String elementName, String attrName, String attrValue)
  5. findElementByAttribute(final NodeList list, final String name, final String value)