import java.util.ArrayList;
import java.util.List; import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element; import com.sinovatech.service.NgCallService.NgCallServiceRequest;
import com.sinovatech.service.NgCallService.NgCallServiceResponse;
import com.sinovatech.service.s2299Query.BusiInfo;
import com.sinovatech.service.s2299Query.S2299QueryRequest;
import com.sinovatech.service.s2299Query.S2299QueryResponse;
import com.sinovatech.service.sQUserBase.sQUserBaseRequest;
import com.sinovatech.service.sQUserBase.sQUserBaseResponse; public class MyParseXML {
private static final Logger log = Logger.getLogger(MyParseXML.class);
private static StringBuffer xmlHead =null;
static{
xmlHead = new StringBuffer();
xmlHead.append("<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"no\" ?>").append("\n");
xmlHead.append("<ROOT>").append("\n");
} /**
* 信用担保次数查询接口
* @param request
* @return
*/
public static String parseS2299QueryRequest2XML(S2299QueryRequest request){
log.info("parseS2299QueryRequest2XML start ");
StringBuffer xmlRequest = new StringBuffer();
xmlRequest.append(xmlHead.toString());
xmlRequest.append("<REQUEST_INFO>").append("\n").append("<OPR_INFO>").append("\n");
if(request.getRegionId()!=null){
xmlRequest.append("<REGION_ID type=\"long\">"+request.getRegionId()+"</REGION_ID>").append("\n");
}else{
xmlRequest.append("<REGION_ID type=\"long\"></REGION_ID>").append("\n");
} if(request.getChannelType()!=null){
xmlRequest.append("<CHANNEL_TYPE type=\"long\">"+request.getChannelType()+"</CHANNEL_TYPE>").append("\n");
}else{
xmlRequest.append("<CHANNEL_TYPE type=\"long\"></CHANNEL_TYPE>").append("\n");
} if(request.getLoginNo()!=null){
xmlRequest.append("<LOGIN_NO type=\"long\">"+request.getLoginNo()+"</LOGIN_NO>").append("\n");
}else{
xmlRequest.append("<LOGIN_NO type=\"long\"></LOGIN_NO>").append("\n");
} if(request.getLoginPwd()!=null){
xmlRequest.append("<LOGIN_PWD type=\"long\">"+request.getLoginPwd()+"</LOGIN_PWD>").append("\n");
}else{
xmlRequest.append("<LOGIN_PWD type=\"long\"></LOGIN_PWD>").append("\n");
}
if(request.getIpAddress()!=null){
xmlRequest.append("<IP_ADDRESS type=\"long\">"+request.getIpAddress()+"</IP_ADDRESS>").append("\n");
}else{
xmlRequest.append("<IP_ADDRESS type=\"long\"></IP_ADDRESS>").append("\n");
} if(request.getGroupId()!=null){
xmlRequest.append("<GROUP_ID type=\"long\">"+request.getGroupId()+"</GROUP_ID>").append("\n");
}else{
xmlRequest.append("<GROUP_ID type=\"long\"></GROUP_ID>").append("\n");
} if(request.getContactId()!=null){
xmlRequest.append("<CONTACT_ID type=\"long\">"+request.getContactId()+"</CONTACT_ID>").append("\n");
}else{
xmlRequest.append("<CONTACT_ID type=\"long\"></CONTACT_ID>").append("\n");
} if(request.getOpCode()!=null){
xmlRequest.append("<OP_CODE type=\"string\">"+request.getOpCode()+"</OP_CODE>").append("\n");
}else{
xmlRequest.append("<OP_CODE type=\"string\"></OP_CODE>").append("\n");
}
xmlRequest.append("</OPR_INFO>").append("\n").append("<BUSI_INFO_LIST>").append("\n"); System.out.println("request.getBusiInfoList().size() "+request.getBusiInfoList().size()); if(request.getBusiInfoList()!=null&&request.getBusiInfoList().size()>0){
for(int i=0;i<request.getBusiInfoList().size();i++){
BusiInfo busiInfo=request.getBusiInfoList().get(i);
xmlRequest.append("<BUSI_INFO>").append("\n");
xmlRequest.append("<ID_NO type=\"long\">"+busiInfo.getIdNo()+"</ID_NO>").append("\n");
xmlRequest.append("</BUSI_INFO>").append("\n");
}
}else{
xmlRequest.append("<BUSI_INFO>").append("\n");
xmlRequest.append("<ID_NO type=\"long\"></ID_NO>").append("\n");
xmlRequest.append("</BUSI_INFO>").append("\n");
}
xmlRequest.append("<BUSI_INFO_LIST>").append("\n")
.append("</REQUEST_INFO>").append("\n").append("</ROOT>").append("\n");
log.info("parseS2299QueryRequest2XML end ");
return xmlRequest.toString();
} /**
* 信用担保次数查询接口
* @param xml
* @return
* @throws DocumentException
*/
public static S2299QueryResponse parseS2299QueryResponse(String xml) throws DocumentException{
Document document =DocumentHelper.parseText(xml);
S2299QueryResponse response =new S2299QueryResponse();
Element root = document.getRootElement();
String returnCode = root.elementTextTrim("RETURN_CODE");
String returnMsg = root.elementTextTrim("RETURN_MSG");
String userMsg = root.elementTextTrim("USER_MSG");
String detailMsg = root.elementTextTrim("DETAIL_MSG");
String promptMsg = root.elementTextTrim("PROMPT_MSG");
if(returnCode!=null&&(returnCode.equals("0")||returnCode.equals("0"))){
Element OUT_DATA = root.element("OUT_DATA");
String phoneNo = OUT_DATA.elementTextTrim("PHONE_NO");
String custName = OUT_DATA.elementTextTrim("CUST_NAME");
String runName = OUT_DATA.elementTextTrim("RUN_NAME");
String creditName = OUT_DATA.elementTextTrim("CREDIT_NAME");
String creditCode = OUT_DATA.elementTextTrim("CREDIT_CODE");
String idIccid = OUT_DATA.elementTextTrim("ID_ICCID");
String idAddress = OUT_DATA.elementTextTrim("ID_ADDRESS");
String vipDelayTimes = OUT_DATA.elementTextTrim("VIP_DELAY_TIMES");
String alerDelayTimes = OUT_DATA.elementTextTrim("ALRE_DELAY_TIMES");
response.setPhoneNo(phoneNo);
response.setCustName(custName);
response.setRunName(runName);
response.setCreditName(creditName);
response.setCreditCode(creditCode);
response.setIdIccid(idIccid);
response.setIdAddress(idAddress);
response.setVipDelayTimes(vipDelayTimes);
response.setAlerDelayTimes(new Integer(alerDelayTimes.equals("")?"0":alerDelayTimes));
}
response.setReturnMsg(returnMsg);
response.setDetailMsg(detailMsg);
response.setPromptMsg(promptMsg);
response.setUserMsg(userMsg);
return response;
} public static void main(String[] args) throws DocumentException {
//测试request转为xml
S2299QueryRequest request = new S2299QueryRequest();
request.setOpCode("2299");
List<BusiInfo> list = new ArrayList<BusiInfo>();
BusiInfo ba= new BusiInfo();
ba.setIdNo(new Long(1234567890));
BusiInfo ba1= new BusiInfo();
ba1.setIdNo(new Long(987654321));
list.add(ba);list.add(ba1);
request.setBusiInfoList(list);
System.out.println(MyParseXML.parseS2299QueryRequest2XML(request)); //测试xml转为response对象
StringBuffer response = new StringBuffer();
response.append(xmlHead);
response.append("<RETURN_CODE type=\"long\">0</RETURN_CODE>").append("<RETURN_MSG type=\"string\">ok!</RETURN_MSG>")
.append("<USER_MSG type=\"string\">ok!</USER_MSG>").append("<DETAIL_MSG type=\"string\">OK!</DETAIL_MSG>")
.append("<PROMPT_MSG type=\"string\">").append("</PROMPT_MSG><OUT_DATA>").append("<PHONE_NO type=\"string\">18334518378</PHONE_NO>")
.append("<CUST_NAME type=\"string\">秦*</CUST_NAME>").append("<RUN_NAME type=\"string\">正常</RUN_NAME>")
.append("<CREDIT_NAME type=\"string\">5星级</CREDIT_NAME>").append("<CREDIT_CODE type=\"string\">09</CREDIT_CODE>")
.append("<ID_ICCID type=\"string\">14048119960228244x</ID_ICCID>").append("<ID_ADDRESS type=\"string\">实****************</ID_ADDRESS>")
.append("<VIP_DELAY_TIMES type=\"string\">3</VIP_DELAY_TIMES>").append("<ALRE_DELAY_TIMES type=\"int\">0</ALRE_DELAY_TIMES>")
.append("</OUT_DATA></ROOT>");
S2299QueryResponse res = parseS2299QueryResponse(response.toString());
StringBuffer outInfo = new StringBuffer();
outInfo.append(res.getCustName()+" "+res.getCreditName()+" "+res.getIdIccid()+" "+res.getIdAddress());
System.out.println(outInfo.toString());
}
}

axis2带list的报文,对象和xml的转换的更多相关文章

  1. c#开发微信公众号——关于c#对象与xml的转换

    在成为微信公众号开发者以后,整个交互流程:用户->微信服务器->自己的服务器->返回微信服务器->用户: 举个例子:用户在微信公众号里面发了个“您好!”,微信服务器会以特定的x ...

  2. JAXB实现java对象与xml之间转换

    JAXB简介: 1.JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标 ...

  3. 使用XStream注解实现Java对象与XML互相转换的代码示例

    本文记录一下使用xstream这个api的注解特性对Java对象与XML字符串相互转换的一些代码示例.    我们很多人都处理过XML文件,也有很多非常成熟的第三方开源软件.如:jdom.dom4j等 ...

  4. 【WebService】使用jaxb完成对象和xml的转换

    package com.slp.jxmarshaller; /** * Created by sanglp on 2017/2/26. */ public class ClassName { priv ...

  5. java socket报文通信(三)java对象和xml格式文件的相互转换

    前两节讲了socket服务端,客户端的建立以及报文的封装.今天就来讲一下java对象和xml格式文件的相互转换. 上一节中我们列举了一个报文格式,其实我们可以理解为其实就是一个字符串.但是我们不可能每 ...

  6. Java对象转xml报文和xml报文转Java对象帮助类

    import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marsha ...

  7. java对象与XML相互转化

    起因 最近在公司做了一次webservice相关的任务,其中我最敢兴趣的就是webservice接受到XML对应的流以后是如何方便的转化成java对象,而java对象又是如何生成对应的XML的. 目的 ...

  8. Java对象表示方式2:XStream实现对对象的XML化

    上一篇文章讲到了使用Java原生的序列化的方式来表示一个对象.总结一下这种对象表示方式的优缺点: 1.纯粹的Java环境下这种方式可以很好地工作,因为它是Java自带的,也不需要第三方的Jar包的支持 ...

  9. JAVA对象和XML文档、原来他们之间还有这一出

    最近项目开发中遇到一个问题,访问接口不再通过url地址请求的方式,而是 通过socket发送xml格式的报文到指定服务器来进行信息的统一认证.. 因此组装xml格式的报文字符串以及解析服务器返回的xm ...

随机推荐

  1. (状压) Brush (IV) (Light OJ 1018)

    http://www.lightoj.com/volume_showproblem.php?problem=1018   Mubashwir returned home from the contes ...

  2. Google Chrome: Make the Bookmarks Bar Display as Icons Only

    By reducing your bookmarks to show only the icons, you can access more of them from the Bookmarks ba ...

  3. Swing Note

                                      2. Swing容器:   内容窗格.分层窗格.玻璃窗格和一个可选的菜单条.(这四个同时包含在根窗格里)(请分别向其中添加组件)   ...

  4. 从0开始学Swift笔记整理(四)

    这是跟在上一篇博文后续内容: --重写方法 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person {        var n ...

  5. 使用tornado和angularjs搭建网站

    从这篇博文开始,将讲述建立一个站点的全过程.一方面自己从未做过这类事情,算是对自己的一个挑战,另一方面也给想要学这个的同胞留点参考,特别是*需要课程设计作业和毕业设计的同志们*. 首先介绍一下网站功能 ...

  6. 在Android中调用C#写的WebService(附源代码)

    由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ...

  7. Win32 多线程学习笔记

    学到的API函数 一.线程 创建线程.结束线程.获取线程的结束码 CreateThread ExitThread GetExitCodeThread 二.线程结束时触发 创建线程之后,等待线程的结束之 ...

  8. [WinAPI] API 2 [MessageBox API][消息框API]

    /* 调用消息框 MessageBox API [peoject->set->link->project chose->subsystem:windows] */ #inclu ...

  9. [游戏模版18] Win32 五子棋

    >_<:Learning its AI logic. >_<:resource >_<:code: #include <windows.h> // C ...

  10. easyui使用技巧

    1.自定义datagrid字体大小 通过formatter改变字体大小,然后在列中使用: 如下: function formatFontSize(value){ return'<span sty ...