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.