Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
//License from project: Open Source License 

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    /**
     * Get xml nodes by xpath expression
     * 
     * @param doc
     * @param expr
     * @return
     * @throws Exception
     */
    public static NodeList getNodesByXPath(Document doc, XPathExpression expr) throws Exception {
        return (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
    }

    /**
     * Get xml nodes by xpath string, based on xml document
     * 
     * @param doc
     * @param xpath
     * @return
     * @throws Exception
     */
    public static NodeList getNodesByXPath(Document doc, String xpath) throws Exception {
        return (NodeList) getXPathExpression(xpath).evaluate(doc, XPathConstants.NODESET);
    }

    /**
     * Get xml nodes by xpath string, based on xml stream
     * 
     * @param input
     * @param xpath
     * @return
     * @throws Exception
     */
    public static NodeList getNodesByXPath(InputStream input, String xpath) throws Exception {
        return (NodeList) getXPathExpression(xpath).evaluate(getDocument(input), XPathConstants.NODESET);
    }

    /**
     * Get xml nodes by xpath string, based on xml string
     * 
     * @param xml
     * @param xpath
     * @return
     * @throws Exception
     */
    public static NodeList getNodesByXPath(String xml, String xpath) throws Exception {
        return (NodeList) getXPathExpression(xpath).evaluate(getDocument(xml), XPathConstants.NODESET);
    }

    /**
     * Get xml nodes by xpath expression, based on node
     * 
     * @param node
     * @param xpath
     * @return
     * @throws Exception
     */
    public static NodeList getNodesByXPath(Node node, XPathExpression xpath) throws Exception {
        return (NodeList) xpath.evaluate(node, XPathConstants.NODESET);
    }

    /**
     * Get xml nodes by xpath string , based on node
     * 
     * @param node
     * @param xpath
     * @return
     * @throws Exception
     */
    public static NodeList getNodesByXPath(Node node, String xpath) throws Exception {
        return (NodeList) getXPathExpression(xpath).evaluate(node, XPathConstants.NODESET);
    }

    /**
     * Get xpath expression object by xpath string
     * 
     * @param xpathStr
     * @return
     * @throws Exception
     */
    public static XPathExpression getXPathExpression(String xpathStr) throws Exception {
        return XPathFactory.newInstance().newXPath().compile(xpathStr);
    }

    /**
     * Get xml document, by stream
     * 
     * @param input
     * @return
     * @throws Exception
     */
    public static Document getDocument(InputStream input) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(input);
        return doc;
    }

    /**
     * Get xml document, by xml string
     * 
     * @param xml
     * @return
     * @throws Exception
     */
    public static Document getDocument(String xml) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(new ByteArrayInputStream(xml.getBytes()));
        return doc;
    }
}