Converting CDATA Nodes into Text Nodes
This Example describes you the way to Convert CDATA
Nodes to Text Nodes 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.There are some of the methods
used in code given below for Converting a CDATA node to Text node:-
DocumentBuilderFactory builderFactory =
DocumentBuilderFactory.newInstance():-This method Creates a DocumentBuilder
Factory .DocumentBuilder Factory is a Class that enables application to obtain
parser for building DOM trees from XML Document
dbf.setCoalescing(true):-This method specifies convert
CDATA nodes to Text nodes.
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.
transformer.transform(source, result):-This function
organize data according to a style sheet as we are retrieving it from the File.
Xml code for the program generated is
<?xml version="1.0" encoding="UTF-8"?>
<!-- Information About Employees -->
<Company>
<Employee Id="Rose-2345">
<CompanyName>Newstrack</CompanyName>
<City>Rohini</City>>
<name>Girish Tewari</name>
<Phoneno>1234567890</Phoneno>
<!-- CDATA node -->
<Doj>Roseindia
<![CDATA[Roseindia.net <"!@#$%'^&*()> is in Rohini]]>
Roseindia.net
</Doj>
</Employee>
</Company> |
|
ConvertingCDATANodesTextNodes.java:
/*
* @Program that convers CDATA Nodes into Text Nodes While Parsing an XML
File.
* ConvertingCDATANodesTextNodes.java
* Author:-RoseIndia Team
* Date:-21-July-2008
*/
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class ConvertingCDATANodesTextNodes {
public static void main(String[] args) throws Exception {
File f = new File("Cdata.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//Configure it to coalesce CDATA nodes
dbf.setCoalescing(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(f);
new ConvertingCDATANodesTextNodes().CDATAtextnode(doc);
}
public void CDATAtextnode(Document doc) throws Exception {
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
String xmlfile = sw.toString();
System.out.println(xmlfile);
}
} |
|
Output of the program:-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Information About Employees -->
<Company>
<Employee Id="Rose-2345">
<CompanyName>Newstrack</CompanyName>
<City>Rohini</City>>
<name>Girish Tewari</name>
<Phoneno>1234567890</Phoneno>
<!-- CDATA node -->
<Doj>Roseindia
Roseindia.net <"!@#$%'^&*()> is in Rohini
Roseindia.net
</Doj>
</Employee>
</Company> |
|
DownLoad
Source Code