By using TransformerHandler you can create
and send XML data to console.
Step
1: Get
the instance of SAXTransformerFactory.
Ex: SAXTransformerFactory
stf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
Step
2: Get
a TransformerHandler object.
Ex: TransformerHandler
thd = stf.newTransformerHandler()
Step
3: Enable
TransformerHandler to set the result for the transformation.
PrintStream writer = System.out;
StreamResult streamResult = new
StreamResult(writer);
thd.setResult(streamResult);
Step
4: Use
TransformerHandler methods to create document, elements and attributes etc.,
Example
import java.io.PrintStream; import javax.xml.transform.OutputKeys; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; import org.xml.sax.SAXException; import javax.xml.transform.Transformer; public class GenerateXML { static TransformerHandler getHandler() throws TransformerConfigurationException{ SAXTransformerFactory stf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); TransformerHandler thd = stf.newTransformerHandler(); Transformer serializer = thd.getTransformer(); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); return thd; } public static void main(String args[]) throws TransformerConfigurationException, SAXException{ TransformerHandler thd = getHandler(); String id[] = {"1","2","3","4"}; String name[] = {"Krishna", "Murali", "Susantha", "Shanmugham"}; PrintStream writer = System.out; StreamResult streamResult = new StreamResult(writer); thd.setResult(streamResult); thd.startDocument(); thd.startElement(null, null, "employees", null); for(int i=0; i<id.length; i++){ thd.startElement("", "", "employee", null); thd.startElement("", "", "name", null); thd.characters(name[i].toCharArray(), 0, name[i].length()); thd.endElement("", "", "name"); thd.startElement("", "", "id", null); thd.characters(id[i].toCharArray(), 0, id[i].length()); thd.endElement("", "", "id"); thd.endElement("", "", "employee"); } thd.endElement(null, null, "employees"); thd.endDocument(); } }
Output
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>Krishna</name>
<id>1</id>
</employee>
<employee>
<name>Murali</name>
<id>2</id>
</employee>
<employee>
<name>Susantha</name>
<id>3</id>
</employee>
<employee>
<name>Shanmugham</name>
<id>4</id>
</employee>
</employees>
No comments:
Post a Comment