养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

浅谈Java拼接xml报文

时间:2024-10-19 19:39:11

告诉大家几种简单有效的拼接xml报文的方式吧,小编也是一个初级开发者,经验慢慢积累,总有一天终成大神~~~~

方法/步骤-StringBuffer

1、说到拼接我们第一反应往往是想到StringBufferstr=newStringBuffer();然后是一长串的append;对,没错我也是!这种方式虽然看起来代码很整洁,但是不建议用,如果xml报文一旦特别长的话,在你的代码里一眼望去都是append看着好心累~

浅谈Java拼接xml报文

方法/步骤2-Document

1、第二种方法就稍稍玩得高端一点,哥哥们先别着急,需要引一个dom4j的jar,先贴图。

浅谈Java拼接xml报文

2、有jar包就好办了,接下来是具体的使用方法,图给你们蜣贺鱿柢代码也贴给你们,都是实际项目中用到的,没什么好吝啬!/*拼接xml报文*/Documentdoc锇栀劐箨ument1;//这是在创建一个根节点Elementroot=DocumentHelper.createElement("data");//把根节点变成一个Document对象方便添加子节点document1=DocumentHelper.createDocument(root);Elementhead=root.addElement("head");Elementlog_id=head.addElement("log_id");//接口调用轨迹id//setText里面的值是子节点<log_id>的值log_id.setText(UUID.randomUUID().toString());Elementwsid=head.addElement("wsid");//接口idwsid.setText("SLIS_NB_20150417_01");Elementsendtime=head.addElement("sendtime");//发送时间sendtime.setText(PubFun.getCurrentYMDHMSS());Elementbody=root.addElement("body");Elementagentcode=body.addElement("prtno");agentcode.setText(prtno);Elementappntname=body.addElement("type");appntname.setText(type);Elementpaycount=body.addElement("salechnlflag");paycount.setText(salechnlflag);StringrequestXml=document1.asXML();requestXml打印出来就是如第二张图的样子了,我为了让大家看得清楚一点就拿出来格式化了一下,data是根节点,然后就是<head>和<body>两个子节点,一目了然。这种方式也是比较常见的一种,引用dom4j,相信大多数的项目里都用到这个包!

浅谈Java拼接xml报文

浅谈Java拼接xml报文

方法/步骤3-XStream

1、之前我也写过一篇解析xml报文的小篇,其中也是用的XStream;拼接xml这块同样适合!先引jar包xstream-1.4.4版本

浅谈Java拼接xml报文

2、然后根据我的xml报文格式建立相应的实体类;根节点是data,然后下面是两个子节点head和body,注意得实现他们的getset方法哈!

浅谈Java拼接xml报文

浅谈Java拼接xml报文

3、然后是head节点下面又包含了一些节点,同样的我们也得建一个head的实体类,类里的字段都是对应head下面的子节点,实现getset方法!

浅谈Java拼接xml报文

4、然后是body节点下面又包含了一些节点,贴图了!

浅谈Java拼接xml报文

5、实体类都对应上了我们要拼接的xml报文节点之后然后就是组装起来踮碚牢邗了!贴图贴代码大家看看吧。//生成请求xml报文 Headhead=newHead(); head缕计瓤账.setWsid("SLIS_NB_20150417_06"); //接口id head.setLog_id(UUID.randomUUID().toString()); //log的id,uuid head.setSendtime(PubFun.getCurrentYMDHMSS()); //接口调用时间,格式为yyyymmddhhmissfff,精确要毫秒 Bodybody=newBody(); body.setAgentcode(agentcode); body.setAgenttype(agenttype); Datadata=newData(); data.setHead(head); data.setBody(body); XStreamxstream=newXStream(); xstream.alias("data",Data.class); xstream.alias("head",Head.class); xstream.alias("body",Body.class); StringrequestXml=data.headInfo+xstream.toXML(data);这种方式比较正规也是比较好的一种方法,把所有的入参都映射对象,强力推荐!!!

浅谈Java拼接xml报文

© 一点知识