是JSP中写还是Servlet中?
楼主可以看看我这段servlet中的代码,希望有帮助
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
PrintWriter out=response.getWriter();
String dataname=request.getParameter("value");
Document doc=new Document();
Element root=new Element("evadeList");
List<Evade> evadeList=null;
try {
evadeList=TpmsFactroy.getEvadeDao().querryFollowEvadeByDataname(dataname);
} catch (Exception e) {
e.printStackTrace();
}
Iterator<Evade> evadeIt=evadeList.iterator();
while(evadeIt.hasNext()){
Evade evade=evadeIt.next();
Element element=new Element("evade");
element.setAttribute("id", String.valueOf(evade.getDataname()));
element.addContent(evade.getDescription());
root.addContent(element);
}
doc.addContent(root);

XMLOutputter outputter=new XMLOutputter(Format.getRawFormat().setEncoding("utf-8"));
outputter.output(doc,out);
}

解决方案 »

  1.   

    看了你的程序,你打印出来的格式应该是所有内容都是排成一条横线吧!
    因为你在
         XMLOutputter XMLOut = new XMLOutputter(); 
    时,没有给定一个format,所以,它产生一条直线。
     Format fromat = Format.getPrettyFormat();
     XMLOutputter outputter=new XMLOutputter(format);
    然后再写进去就可以了。还有,Format这个class,在jdom.jar没有找到,在jdom1.0.jar或1.1本版的才有。
    我前两天就吃了很多亏了。希望对你有用!!!
      

  2.   

    如果xml是在浏览器里展现,没必要使用format格式化,IE和FF都能自动解析成树状XML,如果在AJAX中使用,更没必要格式化,生成的xml大多不需要直接展现给用户,xml是配置文档,是程序动态读取的数据存放地,不是用来展现的。
      

  3.   

    如果你是要直接存放成文件,或者是在控制台打印出来,并且要有格式的话,加上下面的代码:
     XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat());//有空白变化,即有缩进
    就可以实现你要的效果了