| java.lang.Object com.caucho.xpath.XPath
XPath | public class XPath (Code) | | Public facade for selecting nodes and creating match patterns.
Applications can select nodes directly from the XPath facade.
For example,
Node verse = XPath.find("chapter/verse", node);
For greater efficiency, applications can also precompile the
match patterns.
Pattern pattern = XPath.parseSelect("chapter/verse");
Node verse = pattern.find(node);
XPath can also return values based on XPath expressions, following
the XPath expression syntax. Applications can use the expressions for
the equivalent of xsl:value-of
Expr expr = XPath.parseExpr("chapter/verse/@id + 1");
double value = expr.evalNumber(node);
To support the XPath pattern variables, XPath uses an environment
object. Most applications will not need to use it.
|
Method Summary | |
public static Env | createCall(Env parent) Creates a new variable environment based on an old environment. | public static Env | createEnv() Creates a new variable environment. | public static Env | createEnv(Env global) Creates a new variable environment based on an old environment. | public static boolean | evalBoolean(String query, Node node) Evaluates an XPath expression, returning a boolean. | public static double | evalNumber(String query, Node node) Evaluates an XPath expression, returning a double. | public static Object | evalObject(String query, Node node) | public static String | evalString(String query, Node node) Evaluates an XPath expression, returning a string. | public static Node | find(String query, Node node) Finds a node based on an XPath pattern. | public static void | freeEnv(Env env) Free an environment. | public static Expr | parseExpr(String query) Parses an XPath expression for later evaluation. | public static Expr | parseExpr(String query, NamespaceContext namespace) Parses an XPath expression for later evaluation. | public static Expr | parseExpr(String query, NamespaceContext namespace, AbstractPattern nodeList) Parses an XPath expression for later evaluation. | public static Pattern | parseMatch(String query) Create a node match pattern. | public static Pattern | parseMatch(String query, NamespaceContext namespace) Create a node match pattern. | public static Pattern | parseSelect(String query) Create a node selection pattern. | public static Pattern | parseSelect(String query, NamespaceContext namespace) Create a node selection pattern. | public static Iterator | select(String query, Node node) Selects all node matching an XPath pattern
Parameters: query - XPath select pattern. Parameters: node - XML node to start searching from. |
createCall | public static Env createCall(Env parent)(Code) | | Creates a new variable environment based on an old environment.
This lets environments share globals even through function calls.
|
createEnv | public static Env createEnv()(Code) | | Creates a new variable environment.
|
createEnv | public static Env createEnv(Env global)(Code) | | Creates a new variable environment based on an old environment.
This lets environments share globals even through function calls.
|
evalBoolean | public static boolean evalBoolean(String query, Node node) throws XPathException(Code) | | Evaluates an XPath expression, returning a boolean.
Parameters: query - XPath expression Parameters: node - the node context the boolean result of the expression. |
evalNumber | public static double evalNumber(String query, Node node) throws XPathException(Code) | | Evaluates an XPath expression, returning a double.
Parameters: query - XPath expression Parameters: node - the node context the number result of the expression. |
evalObject | public static Object evalObject(String query, Node node) throws XPathException(Code) | | Evaluates an XPath expression, returning an object
Parameters: query - XPath expression Parameters: node - the node context the result of the expression. |
evalString | public static String evalString(String query, Node node) throws XPathException(Code) | | Evaluates an XPath expression, returning a string. evalString works
like the XSL value-of element.
For example, to get the value of an attribute use:
String value = XPath.evalString("@id", node);
Parameters: query - XPath expression Parameters: node - the node context the string result of the expression. |
find | public static Node find(String query, Node node) throws XPathException(Code) | | Finds a node based on an XPath pattern. The pattern is relative
to the node so XPath.find("child", node) will find children,
not grandchildren.
Parameters: query - XPath select pattern. Parameters: node - XML node to start searching from. The first matching node in document order. |
freeEnv | public static void freeEnv(Env env)(Code) | | Free an environment.
|
parseExpr | public static Expr parseExpr(String query) throws XPathParseException(Code) | | Parses an XPath expression for later evaluation.
Parameters: query - XPath expression the result of the expression. |
parseExpr | public static Expr parseExpr(String query, NamespaceContext namespace) throws XPathParseException(Code) | | Parses an XPath expression for later evaluation.
Parameters: query - XPath expression Parameters: namespace - namespace context the compiled expression |
parseExpr | public static Expr parseExpr(String query, NamespaceContext namespace, AbstractPattern nodeList) throws XPathParseException(Code) | | Parses an XPath expression for later evaluation.
Parameters: query - XPath expression Parameters: namespace - namespace context Parameters: nodeList - containing nodeList pattern the compiled expression |
parseMatch | public static Pattern parseMatch(String query) throws XPathParseException(Code) | | Create a node match pattern. Match patterns are intended to test
if a node matches the pattern. They do not work well for finding or
selecting patterns. Essentially, a match pattern of 'foo[@bar]' is
equivalent to a select pattern of '//foo[@bar]', but with less overhead.
Parameters: query - XPath match pattern. a pattern that can later be used for isMatch. |
parseMatch | public static Pattern parseMatch(String query, NamespaceContext namespace) throws XPathParseException(Code) | | Create a node match pattern. Match patterns are intended to test
if a node matches the pattern. They do not work well for finding or
selecting patterns. Essentially, a match pattern of 'foo[@bar]' is
equivalent to a select pattern of '//foo[@bar]', but with less overhead.
Parameters: query - XPath match pattern. Parameters: namespace - the appropriate namespace mappings. a pattern that can later be used for isMatch. |
parseSelect | public static Pattern parseSelect(String query) throws XPathParseException(Code) | | Create a node selection pattern. The pattern matches relative
to the current node.
Parameters: query - XPath select pattern. a pattern that can later select nodes. |
parseSelect | public static Pattern parseSelect(String query, NamespaceContext namespace) throws XPathParseException(Code) | | Create a node selection pattern. The pattern matches relative
to the current node.
XSLT uses this version of parseSelect for proper namespace
matching.
Parameters: query - XPath select pattern. Parameters: namespace - the appropriate namespace mappings a pattern that can later select nodes. |
select | public static Iterator select(String query, Node node) throws XPathException(Code) | | Selects all node matching an XPath pattern
Parameters: query - XPath select pattern. Parameters: node - XML node to start searching from. An iterator of nodes matching the pattern. |
|
|