📄 xmlwriter.java
字号:
package com.jr81.source.xml;
import java.sql.*;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.jdom.Element;
public class XMLWriter {
/**
* @param ResultSet
* rs输入的结果集
* @return String 返回XML串
* @exception SQLException
*/
public String generateXML(final ResultSet rs,LinkedHashMap params) throws SQLException {
final StringBuffer buffer = new StringBuffer(1024 * 4);
if (rs == null)
return "";
if (!rs.next())
return "";
buffer.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>\n"); // XML的头部信息
buffer.append("<GZJRDP Version=\"1.0\">\n");
buffer.append(" <opRep>\n");
buffer.append(" <opResultSet>\n");
buffer.append(" <opResult>\n");
ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集的定义结构
int colCount = rsmd.getColumnCount(); // 得到列的总数
rs.beforeFirst();
for (int id = 0; 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++) {
int type = rsmd.getColumnType(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(" </opResult>\n");
buffer.append(" </opResultSet>\n");
///add by sanlen
if (params!=null){
Iterator i=params.entrySet().iterator();
while(i.hasNext()) {
Map.Entry entry=(Map.Entry)i.next();
buffer.append("<"+entry.getKey()+">"+params.get(entry.getKey())+"</"+entry.getKey()+">");
}
}
buffer.append(" </opRep>\n");
buffer.append("</GZJRDP>");
rs.close();
return buffer.toString();
}
public String generateXML(LinkedHashMap params) throws SQLException {
final StringBuffer buffer = new StringBuffer(1024 * 4);
buffer.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>\n"); // XML的头部信息
buffer.append("<GZJRDP Version=\"1.0\">\n");
buffer.append(" <opRep>\n");
buffer.append(" <opResultSet>\n");
buffer.append(" <opResult>\n");
///add by sanlen
if (params!=null){
Iterator i=params.entrySet().iterator();
while(i.hasNext()) {
Map.Entry entry=(Map.Entry)i.next();
buffer.append("<"+entry.getKey()+">"+params.get(entry.getKey())+"</"+entry.getKey()+">");
}
}
buffer.append(" </opRep>\n");
buffer.append("</GZJRDP>");
return buffer.toString();
}
public String generateXML(final ResultSet rs, int DataType)
throws SQLException {
final StringBuffer buffer = new StringBuffer(1024 * 4);
if (rs == null)
return "";
if (!rs.next())
return "";
//TcuColumnNameConvert convert = new TcuColumnNameConvert(DataType);
buffer.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>\n"); // XML的头部信息
buffer.append("<GZJRDP Version=\"1.0\">\n");
buffer.append(" <opRep>\n");
buffer.append(" <opResultSet>\n");
buffer.append(" <opResult>\n");
ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集的定义结构
int colCount = rsmd.getColumnCount(); // 得到列的总数
rs.beforeFirst();
for (int id = 0; 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++) {
int type = rsmd.getColumnType(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(" </opResult>\n");
buffer.append(" </opResultSet>\n");
buffer.append(" </opRep>\n");
buffer.append("</GZJRDP>");
rs.close();
return buffer.toString();
}
public String generateXML(Element root) throws Exception {
final StringBuffer buffer = new StringBuffer(1024 * 4);
Element opReq = root.getChild("opReq");
Element opName = opReq.getChild("opName");
Element ReqParam = opReq.getChild("ReqParam");
buffer.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>\n"); // XML的头部信息
buffer.append("<GZJRDP Version=\"1.0\">\n");
buffer.append(" <opName>");
buffer.append(opName.getText());
buffer.append(" </opName>\n");
buffer.append(" <opReq>\n");
buffer.append(" <ReqParam>\n");
Element row = ReqParam.getChild("row");
int RowCount = ReqParam.getChildren().size();
List list = row.getChildren();
for (int id = 0; id < RowCount; id++) {
buffer.append("\t<row id=\"").append(id).append("\">\n");
for (Iterator iter = list.iterator(); iter.hasNext();) {
Element element = (Element) iter.next();
buffer.append("\t\t<col name=\""
+ element.getAttributeValue("name") + "\">");
buffer.append(element.getText());
buffer.append("</col>\n");
}
buffer.append("\t</row>\n");
}
buffer.append(" </ReqParam>\n");
buffer.append(" </opReq>\n");
buffer.append("</GZJRDP>");
return buffer.toString();
}
/**
* This method gets the value of the specified column
* 通用的读取结果集某一列的值并转化为String表达
*
* @param ResultSet
* rs 输入的纪录集
* @param int
* colNum 第几列
* @param int
* type 数据类型
*/
private String getValue(final ResultSet rs, int colNum, int type)
throws SQLException {
switch (type) {
case Types.ARRAY:
case Types.BLOB:
case Types.CLOB:
case Types.DISTINCT:
case Types.LONGVARBINARY:
case Types.VARBINARY:
case Types.BINARY:
case Types.REF:
case Types.STRUCT:
return "undefined";
default: {
Object value = rs.getObject(colNum);
if (rs.wasNull() || (value == null))
return ("null");
else
return (value.toString());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -