code: public static List<?> evaluateAsList(final XPathExpression expression, final Node node, final Method method, final InvocationContext invocationContext) throws XPathExpressionException {
          //assert targetComponentType != null;
          final Class<?> targetComponentType = invocationContext.getTargetComponentType();
          final NodeList nodes = (NodeList) expression.evaluate(node, XPathConstants.NODESET);
          final List<Object> linkedList = new LinkedList<Object>();
  
          final TypeConverter typeConverter = invocationContext.getProjector().config().getTypeConverter();
          if (typeConverter.isConvertable(targetComponentType)) {
              for (int i = 0; i < nodes.getLength(); ++i) {
                  linkedList.add(typeConverter.convertTo(targetComponentType, nodes.item(i).getTextContent(), invocationContext.getExpressionFormatPattern()));
              }
              return linkedList;
          }
          if (Node.class.equals(targetComponentType)) {
              for (int i = 0; i < nodes.getLength(); ++i) {
                  linkedList.add(nodes.item(i));
              }
              return linkedList;
          }
          if (targetComponentType.isInterface()) {
              for (int i = 0; i < nodes.getLength(); ++i) {
                  Object subprojection = invocationContext.getProjector().projectDOMNode(nodes.item(i), targetComponentType);
                  linkedList.add(subprojection);
              }
              return linkedList;
          }
          throw new IllegalArgumentException("Return type " + targetComponentType + " is not valid for list or array component type returning from method " + method + " using the current type converter:" + invocationContext.getProjector().config().getTypeConverter()
                  + ". Please change the return type to a sub projection or add a conversion to the type converter.");
      }
docs: Perform an XPath evaluation on an invocation context.
  
  @param expression
  @param node
  @param method
  @param invocationContext
  @return a list of evaluation results
  @throws XPathExpressionException