Class XPathFuncHereAPI


  • public class XPathFuncHereAPI
    extends java.lang.Object
    This class does the same as XPathAPI except that the XPath strings are not supplied as Strings but as Text, Attribute or {ProcessingInstruction} nodes which contain the XPath string. This enables us to use the here() function.
    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.
    Author:
    $Author$
    See Also:
    XPath Specification
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static org.apache.xpath.objects.XObject eval​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)
      Evaluate XPath string to an XObject.
      static org.apache.xpath.objects.XObject eval​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode, org.apache.xml.utils.PrefixResolver prefixResolver)
      Evaluate XPath string to an XObject.
      static org.apache.xpath.objects.XObject eval​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode, org.w3c.dom.Node namespaceNode)
      Evaluate XPath string to an XObject.
      static org.w3c.dom.traversal.NodeIterator selectNodeIterator​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)
      Use an XPath string to select a nodelist.
      static org.w3c.dom.traversal.NodeIterator selectNodeIterator​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode, org.w3c.dom.Node namespaceNode)
      Use an XPath string to select a nodelist.
      static org.w3c.dom.NodeList selectNodeList​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)
      Use an XPath string to select a nodelist.
      static org.w3c.dom.NodeList selectNodeList​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode, org.w3c.dom.Node namespaceNode)
      Use an XPath string to select a nodelist.
      static org.w3c.dom.Node selectSingleNode​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)
      Use an XPath string to select a single node.
      static org.w3c.dom.Node selectSingleNode​(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode, org.w3c.dom.Node namespaceNode)
      Use an XPath string to select a single node.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • XPathFuncHereAPI

        public XPathFuncHereAPI()
    • Method Detail

      • selectSingleNode

        public static org.w3c.dom.Node selectSingleNode​(org.w3c.dom.Node contextNode,
                                                        org.w3c.dom.Node xpathnode)
                                                 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.
        xpathnode - A Node containing 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,
                                                        org.w3c.dom.Node xpathnode,
                                                        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.
        xpathnode -
        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,
                                                                            org.w3c.dom.Node xpathnode)
                                                                     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.
        xpathnode -
        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,
                                                                            org.w3c.dom.Node xpathnode,
                                                                            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.
        xpathnode -
        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,
                                                          org.w3c.dom.Node xpathnode)
                                                   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.
        xpathnode -
        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,
                                                          org.w3c.dom.Node xpathnode,
                                                          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.
        xpathnode -
        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 org.apache.xpath.objects.XObject eval​(org.w3c.dom.Node contextNode,
                                                            org.w3c.dom.Node xpathnode)
                                                     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.
        xpathnode -
        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 org.apache.xpath.objects.XObject eval​(org.w3c.dom.Node contextNode,
                                                            org.w3c.dom.Node xpathnode,
                                                            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.
        xpathnode -
        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 org.apache.xpath.objects.XObject eval​(org.w3c.dom.Node contextNode,
                                                            org.w3c.dom.Node xpathnode,
                                                            org.apache.xml.utils.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.
        xpathnode -
        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