Package org.apache.xml.security.utils
Class XPathFuncHereAPI
- java.lang.Object
-
- org.apache.xml.security.utils.XPathFuncHereAPI
-
public class XPathFuncHereAPI extends java.lang.Object
This class does the same asXPathAPI
except that the XPath strings are not supplied as Strings but asText
,Attr
ibute 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.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.
-
-
-
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
-
-