Java XPath Select xpathNode(String expr, Document doc)

Here you can find the source of xpathNode(String expr, Document doc)

Description

xpath Node

License

Open Source License

Declaration

public static Node xpathNode(String expr, Document doc) 

Method Source Code


//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);
        }
    }
}

Related

  1. selectString(String xpath, Object node)
  2. selectStrings(String xpath, Object node)
  3. selectXPathString(final String xPath, final Node inNode, final String nsuri, final String pre)
  4. xmlSelectNodes(Node node, String xpathExpression)
  5. XPathAPI_selectNodeList(Document doc, String xpath, Node namespaceNode)
  6. xpathNodeList(String expr, Document doc)
  7. xpathOrNull(Document doc, String xp)
  8. xpathString(String expr, Document doc)
  9. xpathToNode(Document document, String xpathExpression)