java - 如何将记录保存在xml文件中?

标签 java xml jakarta-ee

在我的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。

关于java - 如何将记录保存在xml文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29335338/

相关文章:

java - 我如何为我的 Java 应用程序的用户前端决定是使用 Swing GUI 还是轻量级 Web 客户端?

java - 使用 Thymeleaf 作为模板的 Spring Boot 发送电子邮件 - 配置不起作用

php - 将 PHP 设置传递给 Javascript 的最佳方式是什么?

spring - @Inject 和 @Autowired 有什么区别

java - 如何从标有 enctype :multipart/form-data(JSF 2. 0) 的表单中提取文本

java - 使用 AWS Java SDK 将项目发布到 RDS 数据库表

java - 使用大小为 30K 的数组进行测试时,使用 HashMap 实现的代码失败

c# - 如何制作 XML 节点的副本及其所有子节点和值但名称不同 C# .NET

java - 为 JAXB 转换创建时间戳适配器

java - 在 Eclipse 的包资源管理器中突出显示类文件