Preventing Expansion of Entity References
This Example shows you how to prevent expansion of
entity references while parsing an XML file in a DOM document. JAXP (JavaAPI 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 Preventing Expansion of Entity References:-
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
DocumentBuilder builder = Factory.newDocumentBuilder():-This
method creates a DocumentBuilder object with the help of a
DocumentBuilderFactory
File file = new
File("Document4.xml"):-Creates a new File.
builderFactory.setExpandEntityReferences(false):-This
method specifies that the parser produced by this code will expand entity
reference 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>
<Doj>May 2008</Doj>
</Employee>
<!-- Information about other Employee -->
<Employee Id="Rose-2346">
<CompanyName>RoseIndia.net</CompanyName>
<City>Lucknow</City>
<name>Mahendra Singh</name>
<Phoneno>123652314</Phoneno>
<Doj>May 2008</Doj>
</Employee>
</Company>
|
PreventingExpansionofEntityReferences.java
/*
* @Program for Preventing Expansion of Entity References
While Parsing an XML File
* PreventingExpansionofEntityReferences.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 PreventingExpansionofEntityReferences {
public static void main(String[] args) throws Exception {
File f = new File("Document4.xml");
DocumentBuilderFactory builderFactory =
DocumentBuilderFactory.newInstance();
//Specifies that the parser produced by this code will
//expand entity reference nodes
builderFactory.setExpandEntityReferences(false);
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document doc = builder.parse(f);
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
String xmlfile=writer.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>
<Doj>May 2008</Doj>
</Employee>
<!-- Information about other Employee -->
<Employee Id="Rose-2346">
<CompanyName>RoseIndia.net</CompanyName>
<City>Lucknow</City>
<name>Mahendra Singh</name>
<Phoneno>123652314</Phoneno>
<Doj>May 2008</Doj>
</Employee>
</Company>
|
Download
Source Code