Java XPath Evaluate evaluateXPathAsNodeList(String expression, Document document)

Here you can find the source of evaluateXPathAsNodeList(String expression, Document document)

Description

Returns the XML NodeList matching the given XPath expression.

License

Apache License

Parameter

Parameter Description
expression XPath expression.
document XML document to search for the node list.

Return

The matching XML .

Declaration

public static NodeList evaluateXPathAsNodeList(String expression, Document document) 

Method Source Code

//package com.java2s;
/*/*  w ww .  j a  va 2 s .c  o  m*/
 * Copyright (c) 2012 - 2015 by Stefan Ferstl <st.ferstl@gmail.com>
 *
 * 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.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;

import org.w3c.dom.NodeList;

public class Main {
    /**
     * Returns the XML {@link NodeList} matching the given XPath expression.
     * @param expression XPath expression.
     * @param document XML document to search for the node list.
     * @return The matching XML {@link NodeList}.
     */
    public static NodeList evaluateXPathAsNodeList(String expression, Document document) {
        return evaluateXpath(expression, document, XPathConstants.NODESET);
    }

    @SuppressWarnings("unchecked")
    private static <T> T evaluateXpath(String expression, Document document, QName dataType) {
        try {
            XPath xpath = createXPath();
            XPathExpression compiledExpression = xpath.compile(expression);
            return (T) compiledExpression.evaluate(document, dataType);
        } catch (XPathExpressionException e) {
            throw new IllegalArgumentException("Cannot evaluate XPath expression '" + expression + "'");
        }
    }

    private static XPath createXPath() {
        return XPathFactory.newInstance().newXPath();
    }
}

Related

  1. evaluateXPath(Node node, String xPath)
  2. evaluateXpath(String expression, Document document, QName dataType)
  3. evaluateXpath(String expression, Object node, QName returnType, NamespaceContext nsContext)
  4. evaluateXPath(String path, Node e, QName type)
  5. evaluateXPath(String xpath, Object item, QName returnType)
  6. evaluateXPathBool(final Node inNode, final String xpath)
  7. evaluateXPathExpr(final File xmlFile, final XPathExpression xPathExpression, final QName returnType)
  8. evaluateXPathExpr(XPathExpression xpath, Node node)
  9. evaluateXPathExpression(final String expression, final Node node)