The methods in this class are convenience methods into the
low-level XPath API. We would like to eventually move these
methods into the XPath core, but would like to do some peer
review first to make sure we have it right.
Please note that these methods execute pure XPaths. They do not
implement those parts of XPath extended by XSLT, such as the
document() function). If you want to install XSLT functions, you
have to use the low-level 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.
public static org.w3c.dom.Node selectSingleNode(org.w3c.dom.Node contextNode,
java.lang.String str)
throws org.xml.sax.SAXException
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.
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.