Example 11-2: Generating XML for any ResultSet using ResultSetMetaData

import java.sql.*;
import java.io.*;

public class XMLForResultSet {
  public static void print(ResultSet rs, String resultElt, String rowElt,
                           PrintWriter out) throws SQLException {
    ResultSetMetaData rsMeta = rs.getMetaData();
    int colCount = rsMeta.getColumnCount();
    out.println("<?xml version=\"1.0\"?>");
    // Document element for the result
    out.println("<"+resultElt+">");
    // Loop over the rows in the query result
    while (rs.next ()) {
      // Element for each row
      out.println("<"+rowElt+">");
      // For each column in the result set
      for (int curCol = 1; curCol <= colCount; curCol++) {
        String curName = rsMeta.getColumnName(curCol);
        out.println("<"+curName+">"+rs.getString(curCol)+"</"+curName+">");
      }
      out.println("</"+rowElt+">");
    }
    out.println("</"+resultElt+">");
  }
}