package com.dalager.rss;

import java.io.*;

// for net connectivity
import java.net.URL;

// For write operation
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;


public class OPMLTransformer {
    static URL onlineOPML;

    public static void main(String[] args) {
        try {

	    File stylesheet = new File("J:\\myJava\\rss\\docs\\blogroll.xsl");
            File opmlFile = new File("J:\\myJava\\rss\\docs\\blogroll.opml");
            File outputfile = new File("J:\\myJava\\rss\\docs\\blogroll.html");

            // Use a Transformer for output
            TransformerFactory tFactory = TransformerFactory.newInstance();
            StreamSource stylesource = new StreamSource(stylesheet);
            Transformer transformer = tFactory.newTransformer(stylesource);

            StreamSource source = new StreamSource(opmlFile);
            StreamResult result = new StreamResult(outputfile);
            transformer.transform(source, result);
            System.out.println("blogroll.html has been generated!");
        } catch (TransformerConfigurationException tce) {
            // Error generated by the parser
            System.out.println("\n** Transformer Factory error");

            System.out.println("   " + tce.getMessage());

            // Use the contained exception, if any
            Throwable x = tce;

            if (tce.getException() != null) {
                x = tce.getException();
            }

            x.printStackTrace();
        } catch (TransformerException te) {
            // Error generated by the parser
            System.out.println("\n** Transformation error");
            System.out.println("   " + te.getMessage());

            // Use the contained exception, if any
            Throwable x = te;

            if (te.getException() != null) {
                x = te.getException();
            }

            x.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
