docs: @Pure
  	public static Element getElementMatching(Node document, XMLConstraint constraint, boolean caseSensitive, String... path) {
  		assert document != null : AssertMessages.notNullParameter(0);
  		assert constraint != null : AssertMessages.notNullParameter(1);
  		for (final Element element : getElementsFromPath(document, caseSensitive, path)) {
  			if (constraint.isValidElement(element)) {
  				return element;
  			}
  		}
  		return null;
  	}