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. ThinkPHP中add()方法的返回值

    在处理业务数据的时候,有时会遇到需要取得刚insert的数据的主键id值. 以前的做法都是先插入数据后,再通过查询获得id值. 后来在学习ThinkPHP开发的时候才知道,add()方法在写入成功后得 ...

  2. opengles2.0之图元装配和光栅化

    光栅化的过程就是把三维世界中的物体转换成屏幕上像素的过程. glGetfloatv();    --------v表示的是数组 gles2.0里面有两种绘图命令.glDrawArrays和glDraw ...

  3. [SmartFoxServer入门]服务器安装

    安装SFS2X: SFS2X平台安装操作和步骤都很简单.我们建议先查看对系统的要求,然后根据你选择的操作系统按照指定的安装向导进行安装. 系统要求: SFS2X是一款支持所有主流操作系统,运行在JVM ...

  4. socket进阶

    socketserver(在Python2.*中的是SocketServer模块)是标准库中一个高级别的模块.用于简化网络客户与服务器的实现(在前面使用socket的过程中,我们先设置了socket的 ...

  5. JSON.parse解析单引号名值对报错

    今天整理代码的时候发现JSON.pare解析时会报了一个错误,而且很难找原因,调试了几分钟没有成功,猜测可能是单双引号引起的错误.修改了单双引号后程序正常运行了,现在记录下这个bug. 关于JSON. ...

  6. 第六天:用javascript实现购彩拆分票的计算奖金

    需求如下: 购彩金额  拆分票数  <= 10    1票<= 100    10票<= 200   20票<= 500   50票<= 1000   100票 中奖金额 ...

  7. ASP.NET WebAPI 生成帮助文档与使用Swagger服务测试

    帮助HELP 要实现如WCF中的Help帮助文档,Web API 2 中已经支持很方便的实现了这一特性  http://www.asp.net/web-api/overview/creating-we ...

  8. 微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug

    开篇介绍 前些天自己在整理 SSIS 2012 资料的时候发现了一个功能设计上的疑似Bug,在 Script Task 中是可以给只读列表中的变量赋值.我记得以前在 2008 的版本中为了弄明白这个配 ...

  9. UML建模语言入门 -- 用例视图详解 用例视图建模实战

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. 用例视图概述 用例视图表述哪些 ...

  10. Xperf Basics: Recording a Trace (the easy way)(转)

      http://randomascii.wordpress.com/2013/04/20/xperf-basics-recording-a-trace-the-easy-way/   Some ti ...