Skip to end of metadata
Go to start of metadata

This tutorial illustrates is how to generate a stream of SAX events from a CSV stream and how that stream of SAX events feeds into Smooks to generate an XML model that can be transformed further (in this case it is not).

SVN - Download - Other Tutorials

Other Relevant Info:

To Build: "mvn clean install"
To Run: "mvn exec:java"

Transforming from CSV to XML

This is a very simple example that illustrates how Smooks to configure in a non-XML stream parser (CSV) into Smooks.

So here's the source csv file that is to be transformed:


And this is the expected result of our transformation (as generated by the CSVParser):


The Smooks Configuration

We simply specify the CSVParser as the stream parser. More transformation configurations could be added to transform this message further.

Here's the configuration ("smooks-config.xml"):

<?xml version="1.0"?>
<smooks-resource-list xmlns="">

	<!--Configure the CSVParser to parse the message into a stream of SAX events. -->
	<resource-config selector="org.xml.sax.driver">
		<param name="fields" type="string-list">firstname,lastname,gender,age,country</param>


Executing The Transformation

Again, it's exactly the same as with the java-basic tutorial:

Smooks smooks = new Smooks("smooks-config.xml");
StringResult result = new StringResult();

smooks.filter(new StreamSource(messageIn), result);

Of course, you'd typically cache the Smooks instance.

See the example/ in the example source.

  • No labels