50,535
社区成员
发帖
与我相关
我的任务
分享
public static String parserXmlbyMap2(Map<String, Object> rsMap) throws Exception {
String rsXML = "";
Document document = null;
document = DocumentHelper.createDocument();
Map<String, String> queryinfoMap = null;
Map<String, String> resultMap = null;
List<Object> resultList = null;
List<Object> list = null;
if (rsMap.get("queryinfoMap") != null) {
queryinfoMap = (Map<String, String>) rsMap.get("queryinfoMap");
}
if (rsMap.get("resultMap") != null) {
resultMap = (Map<String, String>) rsMap.get("resultMap");
}
if (rsMap.get("resultList") != null) {
resultList = (List<Object>) rsMap.get("resultList");
}
if(rsMap.get("list") != null){
list = (List<Object>) rsMap.get("list");
}
Element request = document.addElement("request");
request.addAttribute("version", "1.0");
Element system = request.addElement("system");
Element servicename = system.addElement("servicename");
if(queryinfoMap.get("servicename")!=null)
servicename.addText(queryinfoMap.get("servicename"));// servicename
Element queryinfo = request.addElement("queryinfo");
Element filed = queryinfo.addElement("filed");
filed.addAttribute("name", "STATUS");
// <!--是否成功信息,1是成功,0是失败-->
if(queryinfoMap.get("STATUS")!=null)
filed.addText(queryinfoMap.get("STATUS"));
// <!--返回错误信息-->
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "ERRORMASSAGE");
if(queryinfoMap.get("ERRORMASSAGE")!=null)
filed.addText(queryinfoMap.get("ERRORMASSAGE"));// 错误信息
// RESULTTYPE
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "RESULTTYPE");
filed.addText("");
// 返回查询信息FTP地址或共享目录
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "PATH");
filed.addText("");
// 结果集数量,指下面row的数量,ftp的也填写0
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "RESULTCOUNT");
filed.addText("0");
// 查询完成时间精确到秒 yyyy-mm-dd hh:mm:ss
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "TIME");
filed.addText(DateUtil.getCurrentDateTime("yyyy-MM-dd HH:mm:ss"));
Element resultInfo = request.addElement("result");
try {
if (resultMap != null) {
for (Map.Entry<String, String> entry : resultMap.entrySet()) {
rsXML += "<filed name=\"" + entry.getKey() + "\" type=\"String\">" + entry.getValue().replace("/", "-") + "</filed>";
String val="";
if(!StringUtil.isEmptyStr(entry.getValue()))
val=entry.getValue();
resultInfo.addElement("filed").addAttribute("name",entry.getKey()).addAttribute("type","String").setText(val.replace("/", "-"));
}
}
if (resultList != null && resultList.size() > 0) {
rsXML += "<array nodename=\"节点名称\" type=\"array\">";
for (int i = 0; i < resultList.size(); i++) {
rsXML += "<row>";
Object source = resultList.get(i);
Method[] sourceMethods = source.getClass().getMethods();
for (int j = 0; j < sourceMethods.length; j++) {
if (sourceMethods[j].getName().startsWith("get")) {
String lsName = sourceMethods[j].getName().substring(3); // 属性
Object loValue = sourceMethods[j].invoke(source); // 值
// String lsSourceType = sourceMethods[i].getReturnType().getName(); // 类型
if(!"Class".equals(lsName))
{
String loValueStr="";
if(loValue!=null)
loValueStr=loValue.toString().replace("<", "<").replace(">", ">");
rsXML += "<filed name=\"" + lsName + "\" type=\"String\">" + loValueStr + "</filed>";
}
}
}
rsXML += "</row>";
}
rsXML += "</array >";
}
if (list != null && list.size() > 0) {
rsXML += "<array nodename=\"listArr\" type=\"array\">";
for (int i = 0; i < list.size(); i++) {
rsXML += "<row>";
Object source = list.get(i);
Method[] sourceMethods = source.getClass().getMethods();
for (int j = 0; j < sourceMethods.length; j++) {
if (sourceMethods[j].getName().startsWith("get")) {
String lsName = sourceMethods[j].getName().substring(3); // 属性
Object loValue = sourceMethods[j].invoke(source); // 值
if(!"Class".equals(lsName))
{
String loValueStr="";
if(loValue!=null)
loValueStr=loValue.toString().replace("<", "<").replace(">", ">");
rsXML += "<filed name=\"" + lsName + "\" type=\"String\">" + loValueStr + "</filed>";
}
}
}
rsXML += "</row>";
}
rsXML += "</array >";
}
System.out.println(rsXML);
if(!StringUtil.isEmptyStr(rsXML))
{
resultInfo.add(DocumentHelper.parseText(rsXML).getRootElement());
}
rsXML = document.asXML().replaceFirst("encoding=\"UTF-8\"", "encoding=\"GBK\"");
} catch (Exception e) {
String message = "回传MAP转XML (普通)异常";
throw new Exception(message, e);
}
return rsXML;
}
<?xml version="1.0" encoding="GBK"?>
<request version="1.0">
<system>
</system>
<array nodename="节点名称" type="array">
<row>
<filed name="Id" type="String">0</filed>
<filed name="Url" type="String"></filed>
<filed name="PolicyNumer" type="String"></filed>
<filed name="Displaneds" type="String"></filed>
</row>
</array>
<array nodename="listArr" type="array">
<row>
<filed name="Url" type="String"></filed>
<filed name="StartDate" type="String"></filed>
<filed name="RiskCode" type="String"></filed>
<filed name="BranchCode" type="String"></filed>
<filed name="PolicyNum" type="String"></filed>
</row>
<row>
<filed name="Url" type="String"></filed>
<filed name="StartDate" type="String"></filed>
<filed name="RiskCode" type="String"></filed>
<filed name="BranchCode" type="String"></filed>
<filed name="PolicyNum" type="String"></filed>
</row>
<row>
<filed name="Url" type="String"></filed>
<filed name="StartDate" type="String"></filed>
<filed name="RiskCode" type="String"></filed>
<filed name="BranchCode" type="String"></filed>
<filed name="PolicyNum" type="String"></filed>
</row>
</array>
</request>