http://jslyghj.iteye.com/blog/467784
http://blog.sina.com.cn/s/blog_700dec940100spox.html
- private String generateXML(final ResultSet rs) throws sqlException {
- final StringBuffer buffer = new StringBuffer(1024 * 4);
- if (rs == null)
- return "";
- buffer.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>\n"); // XML的头部信息
- buffer.append("<ResultSet>\n");
- ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集的定义结构
- int colCount = rsmd.getColumnCount(); // 得到列的总数
- // 对放回的全部数据逐一处理
- for (int id = 1; rs.next(); id++) {
- // 格式为row id,col name,col context
- buffer.append("\t<row id=\"").append(id).append("\">\n");
- for (int i = 1; i <= colCount; i++) {
- String type = rsmd.getColumnTypeName(i); // 获取字段类型
- buffer.append("\t\t<col name=\"" + rsmd.getColumnName(i)
- + "\">");
- buffer.append(getValue(rs,i,type));
- buffer.append("</col>\n");
- }
- buffer.append("\t</row>\n");
- }
- buffer.append("</ResultSet>");
- rs.close();
- return buffer.toString();
- }
- private String[] xmlElements(String xmlDoc) throws JDOMException,IOException {
- //创建一个新的字符串
- StringReader read = new StringReader(xmlDoc);
- //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
- InputSource source = new InputSource(read);
- //创建一个新的SAXBuilder
- SAXBuilder sb = new SAXBuilder();
- //通过输入源构造一个Document
- Document doc = sb.build(source);
- //取的根元素
- Element root = doc.getRootElement();
- //得到根元素所有子元素的集合
- List jiedian = root.getChildren();
- //获得XML中的命名空间(XML中未定义可不写)
- Namespace ns = root.getNamespace();
- Element et = null;
- String[] result = new String[jiedian.size()];
- for(int i=0;i<jiedian.size();i++){
- et = (Element) jiedian.get(i);//循环依次得到子元素
- result[i]=et.getChild("col",ns).getText();//这个为什么要搞col 还是有点不 明白。。。
- }
- et = (Element) jiedian.get(0);
- List zjiedian = et.getChildren();
- for(int j=0;j<zjiedian.size();j++){
- Element xet = (Element) zjiedian.get(j);
- }
- return result;
- }