You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Chan Mei Theng <me...@pocketgroup.co.uk> on 2007/07/03 09:39:56 UTC
HSSFSerializer ( XML2XLS Converter )
Hi,
Here is the java backend program for converting XML to XLS using
HSSFSerializer.
XML - XSL - XML
=============
Input - XML
Input - XSL ( embedded with Gnumeric )
Output - XML ( Gnumeric )
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
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;
/**
* converts an XML file into another XML file based on XSL stylesheet
*
*/
public class XML2XMLTransformer {
public static org.apache.log4j.Logger logger =
org.apache.log4j.Logger.getLogger("XML2XMLTransformer");
/**
* converts an input XML file to a new XML file based on an XSL
stylesheet
*
* @throws Exception
*
*/
public void convert(java.io.InputStream isXML,
java.io.InputStream isXSL, java.io.OutputStream osXML)
throws Exception,
TransformerException, TransformerConfigurationException,
FileNotFoundException, IOException {
javax.xml.transform.TransformerFactory
xmlFactory = null;
javax.xml.transform.Transformer
xmlTransformer = null;
javax.xml.transform.Source xslSource = null;
javax.xml.transform.Source xmlSource = null;
javax.xml.transform.Result xmlResult = null;
try
{
xslSource = new
javax.xml.transform.stream.StreamSource(isXSL);
xmlSource = new
javax.xml.transform.stream.StreamSource(isXML);
xmlResult = new
javax.xml.transform.stream.StreamResult(osXML);
xmlFactory =
javax.xml.transform.TransformerFactory.newInstance();
// xmlTransformer =
xmlFactory.newTransformer(new
javax.xml.transform.stream.StreamSource("C:\\eclipse-SDK\\eclipse-3.2.2\\wor
kspace\\Testing\\WEB-INF\\classes\\page2xls.xsl"));
xmlTransformer =
xmlFactory.newTransformer(xslSource);
// xmlTransformer.transform(new
StreamSource("C:\\eclipse-SDK\\eclipse-3.2.2\\workspace\\Testing\\WEB-INF\\c
lasses\\hello.xml"), new StreamResult(new
FileOutputStream("C:\\eclipse-SDK\\eclipse-3.2.2\\workspace\\Testing\\WEB-IN
F\\classes\\result.xml")));
xmlTransformer.transform(xmlSource, xmlResult);
}
catch (Exception ex)
{
logger.fatal(ex.getMessage());
ex.printStackTrace();
} finally {
xmlFactory = null;
xmlTransformer = null;
xmlSource = null;
xslSource = null;
xmlResult = null;
}
}
public static void main(String[] args) throws FileNotFoundException,
Exception {
org.apache.log4j.PatternLayout loggerLayout
= null;
org.apache.log4j.WriterAppender
loggerAppender = null;
java.io.FileOutputStream loggerOutput =
null;
try {
loggerOutput = new
java.io.FileOutputStream("C:\\eclipse-SDK\\eclipse-3.2.2\\workspace\\Testing
\\WEB-INF\\classes\\XML2XMLTransfomer.log");
loggerLayout = new
org.apache.log4j.PatternLayout();
loggerAppender = new
org.apache.log4j.WriterAppender(loggerLayout, loggerOutput);
logger.addAppender(loggerAppender);
logger.setLevel(org.apache.log4j.Level.INFO);
if (args.length != 3) {
System.err.println("Usage:");
System.err.println(" java XML2XMLTransformer <input:XMLFileName>
<input:xsltFileName> <output:xmlFileName>");
logger.info("Incorrect input parameters.");
System.exit(1);
}
logger.info("XML2XMLTransformer::START");
new
XML2XMLTransformer().convert(new java.io.FileInputStream(args[0]), new
java.io.FileInputStream(args[1]), new java.io.FileOutputStream(args[2]));
logger.info("XML2XMLTransformer::END");
} catch(Exception ex) {
logger.fatal(ex.getMessage());
ex.printStackTrace();
}
}
}
XML - XLS with HSSFSerializer
=======================
Input - XML ( Gnumeric )
Output - XLS
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
/**
* converts an xml stream into an xls stream with HSSFSerializer
*
*/
public class XML2XLSTransformer {
public static org.apache.log4j.Logger logger =
org.apache.log4j.Logger.getLogger("XML2XLSTransformer");
/**
* converts an input XML file to an xls file
*
* @throws Exception
*
*/
public void convert(InputStream is, OutputStream os)
throws Exception,
TransformerException, TransformerConfigurationException,
FileNotFoundException, IOException {
org.apache.cocoon.serialization.HSSFSerializer hs = null;
// java.io.OutputStream os = null;
javax.xml.transform.TransformerFactory
xmlFactory = null;
javax.xml.transform.Transformer
xmlTransformer = null;
javax.xml.transform.Source xmlSource = null;
javax.xml.transform.Result xlsResult = null;
try
{
hs = new
org.apache.cocoon.serialization.HSSFSerializer();
hs.enableLogging(new
org.apache.avalon.excalibur.logger.Log4JLogger(logger));
hs.initialize();
// os = new
java.io.FileOutputStream("C:\\eclipse-SDK\\eclipse-3.2.2\\workspace\\Testing
\\WEB-INF\\classes\\result.xls");
hs.setOutputStream(os);
xmlFactory =
javax.xml.transform.TransformerFactory.newInstance();
xmlTransformer =
xmlFactory.newTransformer();
// xmlSource = new
javax.xml.transform.stream.StreamSource("C:\\eclipse-SDK\\eclipse-3.2.2\\wor
kspace\\Testing\\WEB-INF\\classes\\gnumeric.xml");
xmlSource = new
javax.xml.transform.stream.StreamSource(is);
xlsResult = new
javax.xml.transform.sax.SAXResult((org.xml.sax.ContentHandler) hs);
xmlTransformer.transform(xmlSource, xlsResult);
}
catch (Exception ex)
{
logger.fatal(ex.getMessage());
ex.printStackTrace();
} finally {
hs = null;
// os = null;
xmlFactory = null;
xmlTransformer = null;
xmlSource = null;
xlsResult = null;
}
}
public static void main(String[] args) throws FileNotFoundException,
Exception {
org.apache.log4j.PatternLayout loggerLayout
= null;
org.apache.log4j.WriterAppender
loggerAppender = null;
java.io.FileOutputStream loggerOutput =
null;
try {
loggerOutput = new
java.io.FileOutputStream("C:\\eclipse-SDK\\eclipse-3.2.2\\workspace\\Testing
\\WEB-INF\\classes\\XML2XLSTransfomer.log");
loggerLayout = new
org.apache.log4j.PatternLayout();
loggerAppender = new
org.apache.log4j.WriterAppender(loggerLayout, loggerOutput);
logger.addAppender(loggerAppender);
logger.setLevel(org.apache.log4j.Level.INFO);
logger.info("XML2XLSTransfomer::START");
new
XML2XLSTransformer().convert(new FileInputStream(args[0]),new
FileOutputStream(args[1]));
logger.info("XML2XLSTransfomer::END");
} catch(Exception ex) {
logger.fatal(ex.getMessage());
ex.printStackTrace();
}
}
}
Thanks & Regards
Chan Mei Theng
Technical Developer
m: +6012 488 4484
t: +603 2163 7233
f: +603 2163 8233
<ma...@pocketgroup.co.uk> meitheng@pocketgroup.co.uk
<http://www.pocketgroup.co.uk/> www.pocketgroup.co.uk
skype ID: mtchan48
Experts in mobile content and services
Re: HSSFSerializer ( XML2XLS Converter )
Posted by Reinhard Poetz <re...@apache.org>.
Chan Mei Theng wrote:
> Hi, Giacomo,
>
> So, which email address I should post it to in the below different cases ...
>
> 1. Ask for help.
> 2. Sharing my findings.
users@cocoon.apache.org
--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}
web(log): http://www.poetz.cc
--------------------------------------------------------------------
RE: HSSFSerializer ( XML2XLS Converter )
Posted by Chan Mei Theng <me...@pocketgroup.co.uk>.
Hi, Giacomo,
So, which email address I should post it to in the below different cases ...
1. Ask for help.
2. Sharing my findings.
Thanks & Regards
Chan Mei Theng
Technical Developer
m: +6012 488 4484
t: +603 2163 7233
f: +603 2163 8233
meitheng@pocketgroup.co.uk
www.pocketgroup.co.uk
skype ID: mtchan48
Experts in mobile content and services
-----Original Message-----
From: Giacomo Pati [mailto:giacomo@apache.org]
Sent: Tuesday, July 03, 2007 3:53 PM
To: dev@cocoon.apache.org
Subject: Re: HSSFSerializer ( XML2XLS Converter )
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Chan Mei Theng, could you please stop crossposting to both list (users &
dev)!
Thanks
Chan Mei Theng wrote:
> Hi,
>
>
>
> Here is the java backend program for converting XML to XLS using
> HSSFSerializer.
<snip/>
- --
Giacomo Pati
Otego AG, Switzerland - http://www.otego.com
Orixo, the XML business alliance - http://www.orixo.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (GNU/Linux)
iD8DBQFGigBtLNdJvZjjVZARAkLvAJ9+Rjq0viwzOTQ82zgtCmHA1c/nxQCgtqmm
uM69JuBPClcd/C5wM/GF4Qw=
=+No+
-----END PGP SIGNATURE-----
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.476 / Virus Database: 269.9.14/884 - Release Date: 7/2/2007
3:35 PM
Re: HSSFSerializer ( XML2XLS Converter )
Posted by Giacomo Pati <gi...@apache.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Chan Mei Theng, could you please stop crossposting to both list (users & dev)!
Thanks
Chan Mei Theng wrote:
> Hi,
>
>
>
> Here is the java backend program for converting XML to XLS using
> HSSFSerializer.
<snip/>
- --
Giacomo Pati
Otego AG, Switzerland - http://www.otego.com
Orixo, the XML business alliance - http://www.orixo.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (GNU/Linux)
iD8DBQFGigBtLNdJvZjjVZARAkLvAJ9+Rjq0viwzOTQ82zgtCmHA1c/nxQCgtqmm
uM69JuBPClcd/C5wM/GF4Qw=
=+No+
-----END PGP SIGNATURE-----