Home Xml Transforming XML with XSLT
Questions:Ask|Latest


 
 

Share on Google+Share on Google+

Transforming XML with XSLT

Advertisement
This Example shows you how to Transform XML with the XSLT in a DOM document.

Transforming XML with XSLT

     

This Example shows you how to Transform XML with the XSLT in a DOM document. JAXP (Java API for XML Processing) is an interface which provides parsing of xml documents. Here the Document BuilderFactory is used to create new DOM parsers. Some of the methods used in code given below for Transforming are:-

Source source = new StreamSource("Document2.xml"):-creates a Streamsource.StreamSource is a class that acts as an holder for a transformation Source in the form of a stream of XML markup.

Result result = new StreamResult(System.out):- creates a result.StreamResult class acts as an holder for a transformation result.

TransformerFactory factory = TransformerFactory.newInstance():-TransformerFactory is a class that is used to create Transformer objects. A TransformerFactory instance can be used to create Transformer and Templates objects.

Xsl code for the program generated is:-

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet 
  xmlns:xsl=
"http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="girish">
  <html>
  <head>
  <title>Girish</title>
  </head>
  <body>
  <xsl:apply-templates/>
  </body>
  </html>
  </xsl:template>
  <xsl:template match="roseindia">
  <xsl:value-of select="@key"/>=
  <xsl:value-of select="@value"/>
  <br></br>
  </xsl:template>
</xsl:stylesheet>
  

Xml code for the program generated is:-

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Company>
  <Employee>
  <name Girish="Gi">Roseindia.net
  </name>
  </Employee>
  <Employee>
  <name Komal="Ko">newsTrack
  </name>
  </Employee>
  <Employee>
  <name Mahendra="Rose">Girish Tewari
 </name>
  </Employee>
</Company>
  


XMLwithXSLT.java

/* 
 * @Program for Transforming XML with XSLT
 * XMLwithXSLT.java 
 * Author:-RoseIndia Team
 * Date:-23-July-2008
 */

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.Source;
import javax.xml.transform.Result;
import javax.xml.transform.OutputKeys;

public class XMLwithXSLT {
  public static void main(String[] args) throws Exception {
  Source source = new StreamSource("Document2.xml");
  Source xsl = new StreamSource("newstylesheet1.xsl");
  Result result = new StreamResult(System.out);

  TransformerFactory factory = TransformerFactory.newInstance();
  Transformer transformer = factory.newTransformer(xsl);
  transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  transformer.transform(xsl, result);
  }
}
  


Output of the program:-

Roseindia.net

newsTrack

Girish Tewari

 


Download Source Code

     

Advertisement

Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: August 24, 2008

Ask Questions?    Discuss: Transforming XML with XSLT   View All Comments

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments
Tim
February 2, 2013
Correction

About 5 years late... but the final line should read: transformer.transform(source, result); and not: transformer.transform(xsl, result);
howie
March 6, 2013
typo in example

transformer.transform(xsl, result); xsl should be replaced by source
VINOD
March 15, 2013
This is wrong

Where we are applying source here? instead of transformer.transform(xsl, result); it should be transformer.transform(source, result);
jay
July 25, 2012
your code example

Thanks for posting your example here. But the source code doesn't work. Looks like the following line: transformer.transform(xsl, result); needs to be transformer.transform(source, result); Thanks
endrebak
August 1, 2012
Small mistake

Line "transformer.transform(xsl, result);" should be "transformer.transform(source, result);" Otherwise great, thanks.
antonio castellón
January 8, 2013
wrong example

you need to change: transformer.transform(xsl, result); by transformer.transform(source, result); Best regards, TOni
Cloud Falls
September 13, 2012
typo

Should be transformer.transform(source, result);
chapacan
October 26, 2012
Your code is mistaken

In order to make your code work, you should change the following line: transformer.transform(xsl, result); for this one: transformer.transform(source, result);
ghhutch
November 22, 2012
The transformer.transform(..) is incorrect.

transformer.transform(xsl, result); should be transformer.transform(source, result);
eugene
April 7, 2013
ERROR

There is an principal error in last line: transformer.transform(xsl, result); There instead should be : transformer.transform(source, result);
DMCA.com