Java XPath Select xpathNodeList(String expr, Document doc)

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

Description

xpath Node List

License

Open Source License

Declaration

public static NodeList xpathNodeList(String expr, Document doc) throws Exception 

Method Source Code

//package com.java2s;
/*//from   ww  w.  ja v  a 2 s .c  om
 * 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.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;

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

public class Main {
    private static XPath xpath = XPathFactory.newInstance().newXPath();

    /***************/
    public static NodeList xpathNodeList(String expr, String xml) throws Exception {
        return xpathNodeList(expr, createDocument(xml));
    }

    public static NodeList xpathNodeList(String expr, Document doc) throws Exception {
        return (NodeList) xpath.evaluate(expr, doc, XPathConstants.NODESET);
    }

    public static Document createDocument(String xml) throws Exception {
        DocumentBuilder db = createDocumentBuilder();
        return db.parse(new ByteArrayInputStream(xml.getBytes("UTF-8")), "UTF-8");
    }

    public static Document createDocument(Node sourceNode) throws Exception {
        Document doc = createDocumentBuilder().newDocument();
        Node source;
        if (sourceNode.getNodeType() == Node.DOCUMENT_NODE) {
            source = ((Document) sourceNode).getDocumentElement();
        } else {
            source = sourceNode;
        }

        Node node = doc.importNode(source, true);
        doc.appendChild(node);

        return doc;
    }

    public static DocumentBuilder createDocumentBuilder() throws Exception {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setValidating(false);
        dbf.setIgnoringComments(true);
        return dbf.newDocumentBuilder();
    }
}

Related

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