Interface XPathOperations

All Known Implementing Classes:
AbstractXPathTemplate, JaxenXPathTemplate, Jaxp13XPathTemplate

public interface XPathOperations
Interface that specifies a basic set of XPath operations, implemented by various XPathTemplates. Contains numerous evaluation methods,

The templates that implement this interface do not use precompiled XPath expressions. Consider using the XPathExpressionFactory or the XPathExpressionFactoryBean for optimal performance, but less flexibility.

Since:
1.0.0
Author:
Arjen Poutsma
See Also:
  • Method Details

    • evaluateAsBoolean

      boolean evaluateAsBoolean(String expression, Source context) throws XPathException
      Evaluates the given expression as a boolean. Returns the boolean evaluation of the expression, or false if it is invalid.

      The return value is determined per the boolean() function defined in the XPath specification. This means that an expression that selects zero nodes will return false, while an expression that selects one or more nodes will return true. An expression that returns a string returns false for empty strings and true for all other strings. An expression that returns a number returns false for zero and true for non-zero numbers.

      Parameters:
      expression - the XPath expression
      context - the context starting point
      Returns:
      the result of the evaluation
      Throws:
      XPathException - in case of XPath errors
      See Also:
    • evaluateAsNode

      Node evaluateAsNode(String expression, Source context) throws XPathException
      Evaluates the given expression as a Node. Returns the evaluation of the expression, or null if it is invalid.
      Parameters:
      expression - the XPath expression
      context - the context starting point
      Returns:
      the result of the evaluation
      Throws:
      XPathException - in case of XPath errors
      See Also:
    • evaluateAsNodeList

      List<Node> evaluateAsNodeList(String expression, Source context) throws XPathException
      Evaluates the given expression as a list of Node objects. Returns the evaluation of the expression, or an empty list if no results are found.
      Parameters:
      expression - the XPath expression
      context - the context starting point
      Returns:
      the result of the evaluation
      Throws:
      XPathException - in case of XPath errors
      See Also:
    • evaluateAsDouble

      double evaluateAsDouble(String expression, Source context) throws XPathException
      Evaluates the given expression as a double. Returns the evaluation of the expression, or Double.NaN if it is invalid.

      The return value is determined per the number() function as defined in the XPath specification. This means that if the expression selects multiple nodes, it will return the number value of the first node.

      Parameters:
      expression - the XPath expression
      context - the context starting point
      Returns:
      the result of the evaluation
      Throws:
      XPathException - in case of XPath errors
      See Also:
    • evaluateAsString

      String evaluateAsString(String expression, Source context) throws XPathException
      Evaluates the given expression as a String. Returns the evaluation of the expression, or null if it is invalid.

      The return value is determined per the string() function as defined in the XPath specification. This means that if the expression selects multiple nodes, it will return the string value of the first node.

      Parameters:
      expression - the XPath expression
      context - the context starting point
      Returns:
      the result of the evaluation
      Throws:
      XPathException - in case of XPath errors
      See Also:
    • evaluateAsObject

      <T> T evaluateAsObject(String expression, Source context, NodeMapper<T> nodeMapper) throws XPathException
      Evaluates the given expression, mapping a single Node result to a Java object via a NodeMapper.
      Parameters:
      expression - the XPath expression
      context - the context starting point
      nodeMapper - object that will map one object per node
      Returns:
      the single mapped object
      Throws:
      XPathException - in case of XPath errors
      See Also:
    • evaluate

      <T> List<T> evaluate(String expression, Source context, NodeMapper<T> nodeMapper) throws XPathException
      Evaluates the given expression, mapping each result Node objects to a Java object via a NodeMapper.
      Parameters:
      expression - the XPath expression
      context - the context starting point
      nodeMapper - object that will map one object per node
      Returns:
      the result list, containing mapped objects
      Throws:
      XPathException - in case of XPath errors
      See Also:
    • evaluate

      void evaluate(String expression, Source context, NodeCallbackHandler callbackHandler) throws XPathException
      Evaluates the given expression, handling the result Node objects on a per-node basis with a NodeCallbackHandler.
      Parameters:
      expression - the XPath expression
      context - the context starting point
      callbackHandler - object that will extract results, one row at a time
      Throws:
      XPathException - in case of XPath errors
      See Also: