XML Tutorials
Transforming XML with SAX Filters
This Example shows you the way to Transform XML with SAXFilters. 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.There are
some of the methods used in code given below for Transforming:-
FileReader fileReader = new FileReader("Document2.xml"):-Creates a new FileReader by which the File is readed from.
SAXSource source = new SAXSource(filter, inputSource):-Creates a SAXSource object which acts as an holder for SAX-style Source.
FileWriter fw = new FileWriter("out.xml"):-Creates a new FileWriter object given a File ObjectTransformerFactory 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.
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>
|
|
XMLwithSAX.java
/*
* @Program for Transforming XML with SAXFilters
* XMLwithSAX.java
* Author:-RoseIndia Team
* Date:-23-July-2008
*/
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.sax.*;
import java.io.*;
public class XMLwithSAX {
public final static void main(String[] args) throws Exception {
class CustomFilter extends XMLFilterImpl {
}
FileReader fileReader = new FileReader("Document2.xml");
BufferedReader br = new BufferedReader(fileReader);
InputSource inputSource = new InputSource(br);
XMLReader parser = XMLReaderFactory.createXMLReader();
CustomFilter filter = new CustomFilter();
filter.setParent(parser);
SAXSource source = new SAXSource(filter, inputSource);
FileWriter fw = new FileWriter("out.xml");
BufferedWriter bw = new BufferedWriter(fw);
StreamResult result = new StreamResult(bw);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(source, result);
}
}
|
|
Output of the program:-
<?xml version="1.0" encoding="UTF-8"?>
<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>
|
|
Download Source Code