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