1、写在action里的代码
//获取servletResponse
HttpServletResponse response=ServletActionContext.getResponse();
Format format = Format.getPrettyFormat();//利用format格式化xml
format.setEncoding("utf-8");//设置编码格式
//获取数据
List<FileDetail> list= fileManagerService.getRecentFile(this.getSessionUserId(), 7, null);
Element datatable = new Element("datatable");//xml根节点
//生成head子节点
Element head = new Element("head");
head.addContent(new Element("col").setText("文档名").setAttribute("type", "String"));
head.addContent(new Element("col").setText("下载url").setAttribute("type", "String"));
head.addContent(new Element("col").setText("上传时间").setAttribute("type", "String"));
head.addContent(new Element("col").setText("文件后缀名").setAttribute("type", "String"));
head.addContent(new Element("col").setText("下载次数").setAttribute("type", "String"));
Element body= new Element("body"); //生成body子节点
for (int i=0;i<list.size();i++)
{
Element rows = new Element("rows");// 创建节点 rows;
// 给 rows 节点添加子节点并赋值;
// new Element("name")中的 "name" 替换成表中相应字段,setText("内容")
rows.addContent(new Element("cell").setText(list.get(i).getFileEntity().getFilename()));
rows.addContent(new Element("cell").setText(list.get(i).getFileInfo().getPresenttimestr()));
rows.addContent(new Element("cell").setText("/docsManager/lookupFileDetailInfo.action?fileid="+list.get(i).getFileEntity().getPid()));
rows.addContent(new Element("cell").setText(list.get(i).getFileEntity().getFiletype()));
rows.addContent(new Element("cell").setText(String.valueOf(list.get(i).getFileEntity().getDownloadcount())));
// 给父节点body添加rows子节点;
body.addContent(rows);
}
//给datatable添加head、body节点
datatable.addContent(head);
datatable.addContent(body);
Document doc = new Document(datatable);
XMLOutputter docWriter = new XMLOutputter(format);//格式化xml
String strFromXml = docWriter.outputString(doc);
System.out.println(strFromXml);
//在html中显示xml格式的字符串
response.setContentType("text/plain; charset=UTF-8");
response.setHeader("Content-Disposition", "inline");
response.getWriter().write(strFromXml);
return null;
生成的xml格式如下: