public static List<Node> extractFragmentByElementAndAttributeValue(
final List<Node> rootNodes, final String elementName, final String attributeName, final String attributeValue) {
Validate.notNull(rootNodes, "Root node list cannot be null");
final String normalizedElementName = Element.normalizeElementName(elementName);
final String normalizedAttributeName = Attribute.normalizeAttributeName(attributeName);
final List<Node> fragmentNodes = new ArrayList<Node>(5);
for (final Node rootNode : rootNodes) {
final List<Node> extraction =
extractFragmentFromNode(rootNode, normalizedElementName, normalizedAttributeName, attributeValue);
if (extraction != null) {
fragmentNodes.addAll(extraction);
}
}
return fragmentNodes;
}