在我的Web应用程序中,我想使用jdom将数据库表中的记录保存到xml文件中,但是问题是只保存了一条记录。

Test_xml.java

 List<User> users = session.selectList("dao.UserDao.findAll") ;
for (User u : users) {
       try {

    Element company = new Element("user");
    Document doc = new Document(company);
    Element staff = new Element("data");
     staff.setAttribute(new Attribute("id", u.getId()));
     staff.setAttribute(new Attribute("name", u.getName()));
    doc.getRootElement().addContent(staff);
    XMLOutputter xmlOutput = new XMLOutputter();
    xmlOutput.setFormat(Format.getPrettyFormat());
    xmlOutput.output(doc, new FileWriter("c:\\user.xml"));
    out.println("File Saved!");
  } catch (IOException io) {
    out.println(io.getMessage());
  }


我想要这样的结构:

<?xml version="1.0" encoding="UTF-8"?>
<user>
<data id="1" name="Nancy" />
<data id="2" name="Jennifer" />
</user>


请帮助,谢谢。

最佳答案

您继续覆盖保存的记录。您正在for循环中创建新的XMLOutputer,并使用它将一个用户保存到user.xml文件中。

因此,您的文件将仅包含用户列表中的最后一个用户。

您需要在for循环外创建Root元素,在循环内添加到它的子节点(代码中的职员),然后在循环后使用XMLOutputer将整个文档输出到xml。

10-07 16:22
查看更多