You can use the following code for Appending the data in any xml file using Servlets:
package mqtest;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
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 XmlServlet extends HttpServlet{
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
/*
String hostname="";
String hostip="";
String qmname="";
String hostport="";
String channel="";
if(request.getParameter("hostname")!=null
&& request.getParameter("hostip")!=null
&& request.getParameter("qmname")!=null
&& request.getParameter("hostport")!=null
&& request.getParameter("channel")!=null)
{
hostname = request.getParameter("hostname").toString();
hostip = request.getParameter("hostip").toString();
qmname = request.getParameter("qmname").toString();
hostport = request.getParameter("hostport").toString();
channel = request.getParameter("channel").toString();
}*/
String hostname = request.getParameter("hostname").toString();
String hostip = request.getParameter("hostip").toString();
String qmname = request.getParameter("qmname").toString();
String hostport = request.getParameter("hostport").toString();
String channel = request.getParameter("channel").toString();
try
{
System.out.println(hostname);
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
Document
doc = docBuilder.newDocument();
createXmlTree(hostname,hostip,qmname,hostport,channel);
System.out.println("<b>Xml File Created Successfully</b>");
}
catch(Exception e)
{
System.out.println(e);
}
}
public void createXmlTree(String hostname,String hostip,String qmname,String hostport,String channel) throws Exception {
Element root;
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
File file = new File("workspace_jay\\MyRighttPro\\properties.xml");
if (file.exists())
{
DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = fact.newDocumentBuilder();
doc = docBuilder.parse(file);
root = doc.getDocumentElement();
String sr = root.getNodeName();
//root = node.getNodeName();
}
else
{
//System.out.println(hostdetails);
root = doc.createElement("hostinformation");
doc.appendChild(root);
}
Element child = doc.createElement("hostdetails");
root.appendChild(child);
Element child1 = doc.createElement("hostname");
child.appendChild(child1);
Text text1 = doc.createTextNode(hostname);
child1.appendChild(text1);
Element child2 = doc.createElement("hostip");
child.appendChild(child2);
Text text2 = doc.createTextNode(hostip);
child2.appendChild(text2);
Element child3 = doc.createElement("qmname");
child.appendChild(child3);
Text text3 = doc.createTextNode(qmname);
child3.appendChild(text3);
Element child4 = doc.createElement("hostport");
child.appendChild(child4);
Text text4 = doc.createTextNode(hostport);
child4.appendChild(text4);
Element child5 = doc.createElement("channel");
child.appendChild(child5);
Text text5 = doc.createTextNode(channel);
child4.appendChild(text5);
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();
FileWriter fw=new FileWriter(file,false);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(xmlString);
bw.flush();
bw.close();
}
}