Java tutorial
//package com.java2s; /* * 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.Element; public class Main { /** * Returns the XML {@link Element} matching the given XPath expression. * @param expression XPath expression. * @param document XML document to search for the element. * @return The matching XML {@link Element}. */ public static Element evaluateXPathAsElement(String expression, Document document) { return evaluateXpath(expression, document, XPathConstants.NODE); } @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(); } }