
Java code to append data into a existing xml file, As user enters data it overwrites the previous XML file,I want it to be append the data in XML file rather then overwriting. Heres My code:
<%@page import="java.io.*,org.w3c.dom.*,javax.xml.parsers.*,javax.xml.transform.*, javax.xml.transform.dom.*,javax.xml.transform.stream.*,javax.xml.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>untitled</title>
</head>
<body>
<P>
<form>
<P>Name
<input type="text" name="text1"/>
</P>
<P>Address
<input type="text" name="text2"/></P>
<P>Contact
<input type="text" name="text3"/></P>
<P>Email
<input type="text" name="text4"/></P>
<P>
</P>
<P>
<input type="submit" value="Submit" name="submit"/>
</P>
</form></P>
<%!
public void createXmlTree(Document doc,String name,String address,String contact,String email) throws Exception {
System.out.println(name);
Element root = doc.createElement("Student");
doc.appendChild(root);
Element child1 = doc.createElement("Name");
root.appendChild(child1);
Text text1 = doc.createTextNode(name);
child1.appendChild(text1);
Element child2 = doc.createElement("Address");
root.appendChild(child2);
Text text2 = doc.createTextNode(address);
child2.appendChild(text2);
Element child3 = doc.createElement("ContactNo");
root.appendChild(child3);
Text text3 = doc.createTextNode(contact);
child3.appendChild(text3);
Element child4 = doc.createElement("Email");
root.appendChild(child4);
Text text4 = doc.createTextNode(email);
child4.appendChild(text4);
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 xmlString = sw.toString();
File file = new File("c:/new.xml");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write(xmlString);
bw.flush();
bw.close();
}%>
<%
String name1,address1,contact1,email1;
name1 = request.getParameter("text1");
address1 = request.getParameter("text2");
contact1 = request.getParameter("text3");
email1 = request.getParameter("text4");
String name=name1;
String address=address1;
String contact=contact1;
String email=email1;
try
{
System.out.println(name);
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
createXmlTree(doc,name,address,contact,email);
out.println("<b>Xml File Created Successfully</b>");
}
catch(Exception e)
{
System.out.println(e);
}
%>
</body>
</html>
This JSP code overwrites XML file with new data but not appends it.I want to know how to apend that data.Thank you

Do modification in createxml.jsp
<%@page import="java.io.*,org.w3c.dom.*,javax.xml.parsers.*,javax.xml.transform.*, javax.xml.transform.dom.*,javax.xml.transform.stream.*"%>
<%!
public void createXmlTree(Document doc,String name,String address,String contact,String email) throws Exception{
System.out.println(name);
Element root = doc.createElement("Employee");
doc.appendChild(root);
Element child1 = doc.createElement("Name");
root.appendChild(child1);
Text text1 = doc.createTextNode(name);
child1.appendChild(text1);
Element child2 = doc.createElement("Address");
root.appendChild(child2);
Text text2 = doc.createTextNode(address);
child2.appendChild(text2);
Element child3 = doc.createElement("ContactNo");
root.appendChild(child3);
Text text3 = doc.createTextNode(contact);
child3.appendChild(text3);
Element child4 = doc.createElement("Email");
root.appendChild(child4);
Text text4 = doc.createTextNode(email);
child4.appendChild(text4);
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 xmlString = sw.toString();
File file = new File("c:/emp.xml");
FileWriter fw=new FileWriter(file,true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(xmlString);
bw.flush();
bw.close();
}
%>
<%
String name=request.getParameter("name");
String address=request.getParameter("address");
String contact=request.getParameter("contact");
String email=request.getParameter("email");
try{
System.out.println(name);
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
createXmlTree(doc,name,address,contact,email);
out.println("<b>Xml File Created Successfully</b>");
}
catch(Exception e){
System.out.println(e);
}
%>

Sorry sir but your code is not creating XML file,and it is same as that of my code, I havent find emp.XML fileusing ur code.Please check it aain and answer it.Thank you

That code is very good. I need to add node in exist file but I can not help me because I am searching it.