A Transformation Based on the StAXSource/StAXResult Classes and Cursor API
It's quite simple to adapt these six steps to an application that performs an XSLT transformation based on the StAXSource/StAXResult classes. The main task involves creating the StAXSource/StAXResult objects, using the constructors described in the "The StAXSource/StAXResult Classes" section.
Now, suppose that you have the following XML document (named C:\Data_Local\article\xmlFile.xml):
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<?xml-stylesheet type="text/xsl" href="xslFile.xsl"?>
<member>
<name>Martin Hook</name>
<e-mail>mh@yahoo.com</e-mail>
</member>
And the following XSL stylesheet (C:\Data_Local\article\xslFile.xsl):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.01" encoding="ISO-8859-1" indent="yes"
media-type="text/html" />
<xsl:template match="/member">
<html>
<body bgcolor="#FFF2EC">
<p>Member</p>
<p><font face="arial" size="3"><b><i>Name:</i></b></font>
<font face="arial" size="5"><xsl:value-of select="//name"/></font></p>
<p><font face="arial" size="3"><b><i>E-mail:</i></b></font>
<font face="arial" size="5"><xsl:value-of select="//e-mail"/></font></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
If you're using the Cursor API, you create the StAXSource for the XSL stylesheet like this:
XMLStreamReader streamReaderXSL=null;
…
//define the Source object for the stylesheet
Source XSL=new StAXSource(streamReaderXSL);
For the XML document:
XMLStreamReader streamReaderXML=null;
…
//define the Source object for the XML document
Source XML=new StAXSource(streamReaderXML);
Here's the result of this transformation:
XMLStreamWriter streamWriter=null;
…
//define the Result object
Result XML_r=new StAXResult(streamWriter);
Listing 1 shows a complete Java/TrAX application that transforms the xmlFile.xml document into an HTML document (named members.html) using the XSL stylesheet, xslFile.xsl. Of course, the sources and the result are represented by StAXSource and StAXResult objects, respectively.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|