不同的结果集转换成XML

 /**
* 方法将RowSet数据结果集进行数据转换成XML文件
* StringBuffer 进行字符缓存
* ResultSetMetaData 获得RowSet的列名
* xml文件格式如下:
*
* @param RowSet
* @return string
*/
public static String convertResultSetToXML(ResultSet rs){
StringBuffer sb = new StringBuffer();
try{
ResultSetMetaData rsmd = rs.getMetaData();
if (rsmd.getColumnCount()>=0){

///sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
///sb.append("<response>");

while(rs.next()){
sb.append("<row>\n");
for(int j=1;j<=rsmd.getColumnCount();j++){
sb.append("<" +rsmd.getColumnName(j).toLowerCase()+ ">")
.append( rs.getObject(j)==null?"":rs.getObject(j) )
.append("</" +rsmd.getColumnName(j).toLowerCase()+ ">\n");
}
sb.append("</row>\n");
}
///sb.append("</response>");
}

}catch(Exception e){
e.printStackTrace();
}
return sb.toString();
}

/**
* 方法将Map数据结果集进行数据转换成XML文件
* StringBuffer 进行字符缓存
* Map 获得Map的键名和值
*
* xml文件格式
* <?xml version=\"1.0\" encoding=\"UTF-8\"?>
* <key>
* value
* </key>
* @param map
* @return String
*/

public static String convertMapToXML(Map map){
StringBuffer sb = new StringBuffer();
Iterator it = map.entrySet().iterator();
String key ;
String value ;
while(it.hasNext()){
Map.Entry met = (Map.Entry)it.next();
key = (String) met.getKey();
value = (String) met.getValue();

sb.append("<" +key+ ">")
.append( value )
.append("</" +key+ ">");
}
return sb.toString();
}


/**
*
* 这个方法用来处理将 OMElement 类型 转换成 RowSet 类型
*
* 输入的xml数据格式如下:
*<rows>  
* <row>
* <id>123</id>
* <name>Zeven</name>
* </row>
* <row>
* <id>456</id>
* <name>Mike</name>
* </row>
* ...
* </rows>
*
* @param om
* @return
* @throws Exception
*/
public static RowSet convertXML2RowSet(OMElement om) throws Exception{


//第一层
//从<root></root>的下一层
Iterator it = om.getChildren();
OMElement ome;

//第二层
//从<row></row>的下一层
Iterator it2= null;
OMElement ome2;

//多行的记录
List list = new ArrayList();

//一行的字段
Map map = null;
String key = null;//名字
String value = null;//值

try{
while (it.hasNext()) {//第一层行数


ome = (OMElement)it.next();
log.info(ome.toString() );
it2 = ome.getChildren();
map = new Hashtable(); //每行的列数
while( it2.hasNext() ){
ome2 = (OMElement)it2.next();
key = ome2.getLocalName();
value = ome2.getText();
map.put(key, value);
}
list.add(map);
}
CachedRowSet cs = new CachedRowSet();
cs.populate(list);
return cs;


}catch(Exception e){
e.printStackTrace();
throw e;
}
}

/**
* 这个方法用来处理将 ResultSet 类型 转换成 JSONArray 类型
* [user:123,usercode:1234],
* [user:123,usercode:1234]
* @return
*/
public static JSONArray convertResutlSetToJSONArray(ResultSet rs ) throws Exception{

ResultSetMetaData rsmd = rs.getMetaData();
if(rsmd.getColumnCount()>=0){
JSONObject row = null;
JSONArray table = new JSONArray();
while(rs.next()){
row = new JSONObject();
for(int j=1 ,i=rsmd.getColumnCount();j<=i;j++){
row.put( rsmd.getColumnLabel(j).toLowerCase() ,rs.getObject(j)==null?"":rs.getObject(j) );
}
table.put( row );
}
return table;
}else{
throw new ApplicationException("没有数据");
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将SSDD(Scene Text Detection and Recognition)数据集转换成Yolo格式需要以下步骤: 1. 下载和准备数据:首先,从官方网站或相关资源中下载SSDD数据。确保数据中包含图像和相应的标注文件。将它们存储在合适的文件夹中。 2. 理解SSDD数据的标注格式:SSDD数据标注文件通常是以XML或JSON格式存储的。该文件中包含了每张图像中的文本区域的坐标和标签等信息。 3. 解析标注文件:使用适当的解析工具(如Python中的xml或json解析库),读取标注文件,提取图像路径,文本区域的坐标和标签等信息。 4. 图像预处理:对于每张图像,进行必要的预处理,如调整大小、归一化或增强等操作。 5. 转换为Yolo格式:根据Yolo的要求,将每个文本区域的坐标和标签转换为Yolo格式。Yolo格式通常包含类别的索引、边界框中心点相对于图像宽度和高度的归一化值,以及边界框的宽度和高度相对于图像宽度和高度的归一化值。 6. 生成Yolo标签文件:将Yolo格式的信息保存到与对应图像相同的文件名的TXT文件中。每个文本区域的Yolo信息占据一行。 7. 拆分训练和测试:根据自己的需求,将数据分为训练和测试,并分别创建包含图像路径和对应标签信息的TXT文件。 8. 配置Yolo模型:根据创建的数据和标签文件的路径,修改Yolo模型的配置文件。设置类别的数量、路径和其他相关参数。 9. 训练和测试:通过使用修改后的Yolo模型配置文件,训练模型并在测试上进行测试。 10. 验证结果:将模型检测到的文本区域的坐标和标签信息进行解析和验证,以确保转换成功。 以上步骤提供了将SSDD数据集转换为Yolo格式的一般过程。根据实际情况,可能需要进行一些适应性的调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值