通过java程序组织数据输出XML的方法有很多种,用JDOM的组件包构建XML便是其中比较方便的一种,以下通过一个例子来说明。
首先,从这里下载jdom的包,并将/build/jdom.jar导入eclipse。
其次,新建一个类。具体代码参考下面。通过下面的代码就可以输出XML代码了。
jdom的使用方法,请参考这里。
package
xmlcreate;

import
java.io.
*
;
import
org.jdom.
*
;
import
org.jdom.input.
*
;
import
org.jdom.output.
*
;
import
java.io.IOException;
import
java.io.PrintWriter;
import
javax.servlet.ServletException;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;


public
class
Xmlcreate
extends
HttpServlet
...
{
protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException ...{
PrintWriter out = response.getWriter();
//下面这句话必备,否则输出的XML不能被AJAX的对象XMLHttpResquest的方法responseXML()所识别,只能在responseText里输出
response.setContentType("text/xml;charset=UTF-8");
String keyword = Escape.unescape(request.getParameter("keyword"));

try ...{

String[] key = ...{"111","112","113","132","131","232","321","211","258"};

String[] content = ...{"aaa","bbbbbbbbbbbbbbbbaa","ccc","ddd","中文","测试","中国人","测试成员","一个好长好长的试一下啊"};
Xmlcreate s1 = new Xmlcreate();
s1.BuildXMLDoc(key,content,keyword,out);
}

catch (Exception e) ...{
System.out.println(e.getMessage());
}
}
public void BuildXMLDoc(String[] key,String[] content,String keyword,PrintWriter out)
throws IOException, JDOMException

...{
Element resultRoot = new Element("result");
Document Doc = new Document(resultRoot);

for(int i =0;i<key.length;i++)...{
int keyindex = key[i].indexOf(keyword);
int contentindex = content[i].indexOf(keyword);

if(keyindex == 0 || contentindex == 0)...{
Element rsNode = new Element("rs");
resultRoot.addContent(rsNode);
Element keyNode = new Element("key");
keyNode.addContent(Escape.escape(key[i]));
rsNode.addContent(keyNode);
Element contentNode = new Element("content");
contentNode.addContent(Escape.escape(content[i]));
rsNode.addContent(contentNode);
}
}

//Format format = Format.getPrettyFormat();
//format.setEncoding("GB2312");
//XMLOutputter XMLOut = new XMLOutputter(format);
XMLOutputter XMLOut = new XMLOutputter();
XMLOut.output(Doc, out);
}
}