Package org.apache.xml.security.utils
Class XPathFuncHereAPI
- java.lang.Object
-
- org.apache.xml.security.utils.XPathFuncHereAPI
-
public class XPathFuncHereAPI extends java.lang.ObjectThis class does the same asXPathAPIexcept that the XPath strings are not supplied as Strings but asText,Attribute or {ProcessingInstruction} nodes which contain the XPath string. This enables us to use thehere()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
-
-
Constructor Summary
Constructors Constructor Description XPathFuncHereAPI()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.apache.xpath.objects.XObjecteval(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)Evaluate XPath string to an XObject.static org.apache.xpath.objects.XObjecteval(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.XObjecteval(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.NodeIteratorselectNodeIterator(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)Use an XPath string to select a nodelist.static org.w3c.dom.traversal.NodeIteratorselectNodeIterator(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.NodeListselectNodeList(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)Use an XPath string to select a nodelist.static org.w3c.dom.NodeListselectNodeList(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.NodeselectSingleNode(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode)Use an XPath string to select a single node.static org.w3c.dom.NodeselectSingleNode(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode, org.w3c.dom.Node namespaceNode)Use an XPath string to select a single node.
-
-
-
Method Detail
-
selectSingleNode
public static org.w3c.dom.Node selectSingleNode(org.w3c.dom.Node contextNode, org.w3c.dom.Node xpathnode) throws javax.xml.transform.TransformerExceptionUse 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.TransformerExceptionUse 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.TransformerExceptionUse 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.TransformerExceptionUse 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.TransformerExceptionUse 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.TransformerExceptionUse 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.TransformerExceptionEvaluate 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.TransformerExceptionEvaluate 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.TransformerExceptionEvaluate 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
-
-