Java XPath Evaluate evaluateXPathExpression(final String expression, final Node node)

Here you can find the source of evaluateXPathExpression(final String expression, final Node node)

Description

Evaluate XPath expression and return list of nodes.

License

Apache License

Parameter

Parameter Description
expression XPath expression
node DOM node

Exception

Parameter Description
XPathExpressionException if expression cannot be evaluated

Return

list of DOM nodes

Declaration

public static NodeList evaluateXPathExpression(final String expression, final Node node)
        throws XPathExpressionException 

Method Source Code

//package com.java2s;
/*//from  w w w .ja  va2 s. c  o  m
 * Copyright 2007-2012 AjaxTags-Team
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

import javax.xml.namespace.QName;

import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    /** XPathFactory. */
    private static final ThreadLocal<XPathFactory> XPATH_FACTORY = new ThreadLocal<XPathFactory>() {
        @Override
        protected XPathFactory initialValue() {
            return XPathFactory.newInstance();
        }
    };

    /**
     * Evaluate XPath expression and return list of nodes.
     *
     * @param expression
     *            XPath expression
     * @param node
     *            DOM node
     * @return list of DOM nodes
     * @throws XPathExpressionException
     *             if expression cannot be evaluated
     */
    public static NodeList evaluateXPathExpression(final String expression, final Node node)
            throws XPathExpressionException {
        return (NodeList) evaluateXPathExpression(expression, node, XPathConstants.NODESET);
    }

    /**
     * Evaluate XPath expression.
     *
     * @param expression
     *            XPath expression
     * @param node
     *            DOM node
     * @param returnValue
     *            the desired return type
     * @return result of evaluating an XPath expression as an Object of returnType
     * @throws XPathExpressionException
     *             if expression cannot be evaluated
     */
    public static Object evaluateXPathExpression(final String expression, final Node node, final QName returnValue)
            throws XPathExpressionException {
        return getNewXPath().evaluate(expression, node, returnValue == null ? XPathConstants.NODE : returnValue);
    }

    /**
     * Create and return a new {@link XPath} object from {@link ThreadLocal}.
     *
     * @return a new {@link XPath} object.
     */
    public static XPath getNewXPath() {
        return XPATH_FACTORY.get().newXPath();
    }
}

Related

  1. evaluateXPath(String xpath, Object item, QName returnType)
  2. evaluateXPathAsNodeList(String expression, Document document)
  3. evaluateXPathBool(final Node inNode, final String xpath)
  4. evaluateXPathExpr(final File xmlFile, final XPathExpression xPathExpression, final QName returnType)
  5. evaluateXPathExpr(XPathExpression xpath, Node node)
  6. evaluateXPathExpressionAndReturnNode(String expression, Node node)
  7. evaluateXPathExpressionAndReturnNodeList(String expression, Node node)
  8. evaluateXPathQuery(Document doc, NamespaceContext context, String xPathQuery)
  9. evalXPath(Node d, String expr, QName returnType)