Here you can find the source of xpathNode(String expr, Document doc)
public static Node xpathNode(String expr, Document doc)
//package com.java2s; /*// ww w . j a v a 2 s . com * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at license/ESCIDOC.LICENSE * or http://www.escidoc.org/license. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at license/ESCIDOC.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ import java.io.ByteArrayInputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; public class Main { private static XPath xpath = XPathFactory.newInstance().newXPath(); public static Node xpathNode(String expr, String xml) { return xpathNode(expr, createDocument(xml)); } public static Node xpathNode(String expr, Document doc) { try { return (Node) xpath.evaluate(expr, doc, XPathConstants.NODE); } catch (Exception e) { throw new RuntimeException("Cannot evaluate XPath:", e); } } /** * Creates new empty org.w3c.dom.Document * @return org.w3c.dom.Document * @throws CitationStyleManagerException */ public static Document createDocument() { return createDocumentBuilder().newDocument(); } /** * Creates new org.w3c.dom.Document * @param xml * @return org.w3c.dom.Document * @throws RuntimeException */ public static Document createDocument(String xml) { try { return createDocument(xml.getBytes("UTF-8")); } catch (Exception e) { throw new RuntimeException("Cannot create Document", e); } } /** * Creates new org.w3c.dom.Document * @param xml * @return org.w3c.dom.Document * @throws CitationStyleManagerException * @throws IOException * @throws SAXException * @throws Exception */ public static Document createDocument(byte[] xml) { DocumentBuilder db = createDocumentBuilder(); try { return db.parse(new ByteArrayInputStream(xml), "UTF-8"); } catch (Exception e) { throw new RuntimeException("Cannot create Document", e); } } /** * Builds new DocumentBuilder * @return DocumentBuilder * @throws CitationStyleManagerException */ public static DocumentBuilder createDocumentBuilder() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating(false); dbf.setIgnoringComments(true); dbf.setNamespaceAware(false); try { return dbf.newDocumentBuilder(); } catch (ParserConfigurationException e) { throw new RuntimeException("Failed to create a document builder factory", e); } } }