Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 JJSP - Java and Javascript Server Pages 
 Copyright (C) 2016 Global Travel Ventures Ltd
    
 This program is free software: you can redistribute it and/or modify 
 it under the terms of the GNU General Public License as published by 
 the Free Software Foundation, either version 3 of the License, or 
 (at your option) any later version.
    
 This program is distributed in the hope that it will be useful, but 
 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 
 for more details.
    
 You should have received a copy of the GNU General Public License along with 
 this program. If not, see http://www.gnu.org/licenses/.
 */

import org.w3c.dom.Document;

import javax.xml.parsers.*;
import javax.xml.xpath.XPath;

import javax.xml.xpath.XPathFactory;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;

public class Main {
    private static XPathFactory xPathFactory = XPathFactory.newInstance();
    private static final ThreadLocal<DocumentBuilder> builder = new ThreadLocal<DocumentBuilder>() {
        @Override
        protected DocumentBuilder initialValue() {
            try {
                return DocumentBuilderFactory.newInstance().newDocumentBuilder();
            } catch (ParserConfigurationException exc) {
                throw new IllegalArgumentException(exc);
            }
        }
    };

    public static String getAttribute(String xPathExpression, String document) throws Exception {
        return getAttribute(xPathExpression, toDocument(document));
    }

    public static String getAttribute(String xPathExpression, InputStream in) throws Exception {
        Document document = toDocument(in);
        return getAttribute(xPathExpression, document);
    }

    public static String getAttribute(String xPathExpression, Document document) throws Exception {
        XPath xpath = xPathFactory.newXPath();
        return xpath.evaluate(xPathExpression, document);
    }

    public static Document toDocument(File f) throws Exception {
        return builder.get().parse(f);
    }

    public static Document toDocument(String s) throws Exception {
        s = s.replaceAll("&", "&amp;");
        return toDocument(new ByteArrayInputStream(s.getBytes()));
    }

    public static Document toDocument(InputStream in) throws Exception {
        try {
            return builder.get().parse(in);
        } finally {
            in.close();
        }
    }
}