org.apache.xpath

## Class XPathAPI

- java.lang.Object
- - org.apache.xpath.XPathAPI

-     public class XPathAPI
      extends java.lang.Object

  The methods in this class are convenience methods into the low-level XPath API. These functions tend to be a little slow, since a number of objects must be created for each evaluation. A faster way is to precompile the XPaths using the low-level API, and then just use the XPaths over and over. NOTE: In particular, each call to this method will create a new XPathContext, a new DTMManager... and thus a new DTM. That's very safe, since it guarantees that you're always processing against a fully up-to-date view of your document. But it's also portentially very expensive, since you're rebuilding the DTM every time. You should consider using an instance of CachedXPathAPI rather than these static methods.
  See Also:
    XPath Specification

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XPathAPI()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static XObject` | `eval(org.w3c.dom.Node contextNode, java.lang.String str)` Evaluate XPath string to an XObject.
    `static XObject` | `eval(org.w3c.dom.Node contextNode, java.lang.String str, org.w3c.dom.Node namespaceNode)` Evaluate XPath string to an XObject.
    `static XObject` | `eval(org.w3c.dom.Node contextNode, java.lang.String str, PrefixResolver prefixResolver)` Evaluate XPath string to an XObject.
    `static org.w3c.dom.traversal.NodeIterator` | `selectNodeIterator(org.w3c.dom.Node contextNode, java.lang.String str)` Use an XPath string to select a nodelist.
    `static org.w3c.dom.traversal.NodeIterator` | `selectNodeIterator(org.w3c.dom.Node contextNode, java.lang.String str, org.w3c.dom.Node namespaceNode)` Use an XPath string to select a nodelist.
    `static org.w3c.dom.NodeList` | `selectNodeList(org.w3c.dom.Node contextNode, java.lang.String str)` Use an XPath string to select a nodelist.
    `static org.w3c.dom.NodeList` | `selectNodeList(org.w3c.dom.Node contextNode, java.lang.String str, org.w3c.dom.Node namespaceNode)` Use an XPath string to select a nodelist.
    `static org.w3c.dom.Node` | `selectSingleNode(org.w3c.dom.Node contextNode, java.lang.String str)` Use an XPath string to select a single node.
    `static org.w3c.dom.Node` | `selectSingleNode(org.w3c.dom.Node contextNode, java.lang.String str, org.w3c.dom.Node namespaceNode)` Use an XPath string to select a single node.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### XPathAPI

          public XPathAPI()

  - ### Method Detail

    - #### selectSingleNode

          public static org.w3c.dom.Node selectSingleNode(org.w3c.dom.Node contextNode,
                                                          java.lang.String str)
                                                   throws javax.xml.transform.TransformerException

      Use an XPath string to select a single node. XPath namespace prefixes are resolved from the context node, which may not be what you want (see the next method).
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
      Returns:
        The first node found that matches the XPath, or null.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### selectSingleNode

          public static org.w3c.dom.Node selectSingleNode(org.w3c.dom.Node contextNode,
                                                          java.lang.String str,
                                                          org.w3c.dom.Node namespaceNode)
                                                   throws javax.xml.transform.TransformerException

      Use an XPath string to select a single node. XPath namespace prefixes are resolved from the namespaceNode.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
        `namespaceNode` - The node from which prefixes in the XPath will be resolved to namespaces.
      Returns:
        The first node found that matches the XPath, or null.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### selectNodeIterator

          public static org.w3c.dom.traversal.NodeIterator selectNodeIterator(org.w3c.dom.Node contextNode,
                                                                              java.lang.String str)
                                                                       throws javax.xml.transform.TransformerException

      Use an XPath string to select a nodelist. XPath namespace prefixes are resolved from the contextNode.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
      Returns:
        A NodeIterator, should never be null.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### selectNodeIterator

          public static org.w3c.dom.traversal.NodeIterator selectNodeIterator(org.w3c.dom.Node contextNode,
                                                                              java.lang.String str,
                                                                              org.w3c.dom.Node namespaceNode)
                                                                       throws javax.xml.transform.TransformerException

      Use an XPath string to select a nodelist. XPath namespace prefixes are resolved from the namespaceNode.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
        `namespaceNode` - The node from which prefixes in the XPath will be resolved to namespaces.
      Returns:
        A NodeIterator, should never be null.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### selectNodeList

          public static org.w3c.dom.NodeList selectNodeList(org.w3c.dom.Node contextNode,
                                                            java.lang.String str)
                                                     throws javax.xml.transform.TransformerException

      Use an XPath string to select a nodelist. XPath namespace prefixes are resolved from the contextNode.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
      Returns:
        A NodeIterator, should never be null.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### selectNodeList

          public static org.w3c.dom.NodeList selectNodeList(org.w3c.dom.Node contextNode,
                                                            java.lang.String str,
                                                            org.w3c.dom.Node namespaceNode)
                                                     throws javax.xml.transform.TransformerException

      Use an XPath string to select a nodelist. XPath namespace prefixes are resolved from the namespaceNode.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
        `namespaceNode` - The node from which prefixes in the XPath will be resolved to namespaces.
      Returns:
        A NodeIterator, should never be null.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### eval

          public static XObject eval(org.w3c.dom.Node contextNode,
                                     java.lang.String str)
                              throws javax.xml.transform.TransformerException

      Evaluate XPath string to an XObject. Using this method, XPath namespace prefixes will be resolved from the namespaceNode.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
      Returns:
        An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null.
      Throws:
        `javax.xml.transform.TransformerException`
      See Also:
        `XObject`, `XNull`, `XBoolean`, `XNumber`, `XString`, `XRTreeFrag`

    - #### eval

          public static XObject eval(org.w3c.dom.Node contextNode,
                                     java.lang.String str,
                                     org.w3c.dom.Node namespaceNode)
                              throws javax.xml.transform.TransformerException

      Evaluate XPath string to an XObject. XPath namespace prefixes are resolved from the namespaceNode. The implementation of this is a little slow, since it creates a number of objects each time it is called. This could be optimized to keep the same objects around, but then thread-safety issues would arise.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
        `namespaceNode` - The node from which prefixes in the XPath will be resolved to namespaces.
      Returns:
        An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null.
      Throws:
        `javax.xml.transform.TransformerException`
      See Also:
        `XObject`, `XNull`, `XBoolean`, `XNumber`, `XString`, `XRTreeFrag`

    - #### eval

          public static XObject eval(org.w3c.dom.Node contextNode,
                                     java.lang.String str,
                                     PrefixResolver prefixResolver)
                              throws javax.xml.transform.TransformerException

      Evaluate XPath string to an XObject. XPath namespace prefixes are resolved from the namespaceNode. The implementation of this is a little slow, since it creates a number of objects each time it is called. This could be optimized to keep the same objects around, but then thread-safety issues would arise.
      Parameters:
        `contextNode` - The node to start searching from.
        `str` - A valid XPath string.
        `prefixResolver` - Will be called if the parser encounters namespace prefixes, to resolve the prefixes to URLs.
      Returns:
        An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null.
      Throws:
        `javax.xml.transform.TransformerException`
      See Also:
        `XObject`, `XNull`, `XBoolean`, `XNumber`, `XString`, `XRTreeFrag`

Copyright © 2023 Apache XML Project. All Rights Reserved.