根据以html格式输入的数据生成xml文件 [英] generating xml file from the data entered in html form

查看:88
本文介绍了根据以html格式输入的数据生成xml文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

我想为每位输入数据的用户创建xml文件.我使用以下代码尝试了此操作,但是使用此代码,仅生成了一个文件,并且每当输入其他数据时,该文件中的数据就会被覆盖.解决方法是什么?

1. HTML表单

Hello,

I want to create xml file for each user whenever they enter the data. I tried this using following code but with this code only one file is being generated and the data in that file is being overwritten whenever other data is entered. What is thesolution?

1. HTML form

<html>
<head>
</head>
<body>
<br>
<br>
<form name="loginform" method="post" action="xmlServlet">
<table align="center" style="border:1px solid #000000;" bgcolor="#efefef">
<tr>
<td colspan=2 align="center" style="font-weight:bold;">UserLogin</td>

</tr>
<tr>
<td>User Name</td>
<td><input type="text" name="username" value=""></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" value=""></td>
</tr>

<tr>
<td></td>
<td><input type="submit" name="Submit" value="Save"></td>
</tr>
</table>
</form>
</body>
</html>



2.servlet代码



2.servlet code

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{
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  String username="";
  String password="";

  if(request.getParameter("username")!=null 
  && request.getParameter("password")!=null)
  {
 username = request.getParameter("username").toString();
 password = request.getParameter("password").toString();
  }
  try
  {
  DocumentBuilderFactory builderFactory = 
   DocumentBuilderFactory.newInstance();
  DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
  //creating a new instance of a DOM to build a DOM tree.
  Document doc = docBuilder.newDocument();
  new XmlServlet().createXmlTree(doc,username,password);
  
  pw.println("Xml File Created Successfully");
  }
  catch(Exception e)
  {
  System.out.println(e);
  }
  }
  public void createXmlTree
   (Document doc,String userid,String password) throws Exception {
  //This method creates an element node
  Element root = doc.createElement("User");
  //adding a node after the last child node of the specified node.
  doc.appendChild(root);
  Element child1 = doc.createElement("UserId");
  root.appendChild(child1);
  Text text = doc.createTextNode(userid);
  child1.appendChild(text);
  Element element = doc.createElement("Password");
  root.appendChild(element);
  Text text1 = doc.createTextNode(password);
  element.appendChild(text1); 
 //TransformerFactory instance is used to create Transformer objects. 
  TransformerFactory factory = TransformerFactory.newInstance();
  Transformer transformer = factory.newTransformer(); 
  transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  // create string from xml tree
  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:/loginXml.xml");
  BufferedWriter bw = new BufferedWriter
 new OutputStreamWriter(new FileOutputStream(file)));
  bw.write(xmlString);
  bw.flush();
  bw.close();
  
  }
}

推荐答案

每次写入文件时都要更改文件名.您可以在文件名的末尾添加随机数,也可以使用临时文件 [ ^ ].
Change the file name every time you write a file. You can add a random number to the end of the filename or use a temporary file[^] if this is possible.


这篇关于根据以html格式输入的数据生成xml文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆