Exemplo n.º 1
0
  /** Evaluate an XPath expression on the document and keep Item objects in the result. */
  public static List<Item> evaluateKeepItems(
      PropertyContext propertyContext,
      List<Item> contextItems,
      int contextPosition,
      String xpathString,
      Map<String, String> prefixToURIMap,
      Map<String, ValueRepresentation> variableToValueMap,
      FunctionLibrary functionLibrary,
      FunctionContext functionContext,
      String baseURI,
      LocationData locationData) {

    final PooledXPathExpression xpathExpression =
        XPathCache.getXPathExpression(
            propertyContext,
            contextItems,
            contextPosition,
            xpathString,
            prefixToURIMap,
            variableToValueMap,
            functionLibrary,
            baseURI,
            false,
            false,
            locationData);
    try {
      return xpathExpression.evaluateKeepItems(functionContext);
    } catch (Exception e) {
      throw handleXPathException(e, xpathString, "evaluating XPath expression", locationData);
    } finally {
      if (xpathExpression != null) xpathExpression.returnToPool();
    }
  }