当前位置: 首页 > news >正文

做网站放什么wordpress page 2

做网站放什么,wordpress page 2,wordpress主题更新失败,莱芜东风街吧摘要#xff1a;本节主要介绍如何把Object对象转换为XML 引言#xff1a;最近工作中因为工作需要#xff0c;需要把两个系统之间的传递的报文修改一下#xff08;现在系统之间一般都是通过发送xml字符串传数据吧#xff09;#xff0c;最开始用的Jdom来实现的#xff0c…摘要本节主要介绍如何把Object对象转换为XML 引言最近工作中因为工作需要需要把两个系统之间的传递的报文修改一下现在系统之间一般都是通过发送xml字符串传数据吧最开始用的Jdom来实现的由于jdom实现需要手写的代码太多并且遇到了点问题只有另想办法了最后准备用Object转xml来实现虽然这个代码不见得少多少但是get和set方法都是通过工具自动生成手写的就少很多了。 准备工作 下载xstream-1.2.1.jar包我的是1.2.1的版本可以直接去百度搜索下载的链接就不提供了。 XStream类 XStream是一个Java对象和XML相互转换的工具。提供了所有的基础类型、数组、集合等类型直接转换的支持。 因此XML常用于数据交换、对象序列化这种序列化和Java对象的序列化技术有着本质的区别。XStream中的核心类就是XStream类XStream对象相当Java对象和XML之间的转换器转换过程是双向的。 创建XSteam对象的方式很简单只需要new XStream()即可。 Java到xml用toXML()方法。 Xml到Java用fromXML()方法。 在没有任何设置默认情况下java到xml的映射是java成员名对应xml的元素名java类的全名对应xml根元素的名字。 而实际中往往是xml和java类都有了要完成相互转换必须进行别名映射。 别名配置包含三种情况 1、类别名用alias(String name, Class type)。 2、类成员别名用aliasField(String alias, Class definedIn, String fieldName) 3、类成员作为属性别名用 aliasAttribute(Class definedIn, String attributeName, String alias)单独命名没有意义还要通过useAttributeFor(Class definedIn, String fieldName) 应用到某个类上。 需要转换的XML样式为 实际开发中一般都是xml的格式已知你需要根据XML来建立object然后拼装为指定格式的XML 例如(这个可是我项目中一个实际的报文发送XML格式哦呵呵) XML 1 ?xml version1.0 encodingUTF-8? 2 root 3 msg_head 4 time2012-01-01 11:59:59/time 5 version版本号/version!-- 版本号不同版本号对应报文结构与处理实现可能不同 -- 6 msg_typemessage_request/msg_type!-- 固定 -- 7 fromCRM/from!-- 请求来源系统 -- 8 toSF/to!-- 请求目标系统 -- 9 /msg_head10 msg_content11 so_co_serial3212131920110517800/so_co_serial!-- 被追单订单号 --12 so_order_id3212131920110517801/so_order_id!-- 受理定单编号撤单时新产生--13 old_so_order_id3212131920110517800/old_so_order_id!-- 被撤的受理定单编号 --14 order_kind1/order_kind!-- 定单大类 --15 oper_reasonCRMCANCEL/oper_reason16 oper_comment服务定单撤单/oper_comment17 so_staff_id111/so_staff_id18 so_staff_codex受理人编码/so_staff_code19 so_staff_namex受理人名称/so_staff_name20 so_date2012-01-01 11:59:59/so_date21 /msg_content22 /root 示例代码 简单分析按照这个xml我需要建立三个java类同时设置每个属性的get和set方法假设三个类分别为Root.java、MsgHead.java、MsgContent.java Root.java Root.java 1 import java.util.ArrayList; 2 3 public class Root { 4 private ArrayListMsgHead msg_head; 5 private ArrayListMsgContent msg_content; 6 7 public ArrayListMsgHead getMsg_head() { 8 return msg_head; 9 }10 11 public void setMsg_head(ArrayListMsgHead msg_head) {12 this.msg_head msg_head;13 }14 15 public ArrayListMsgContent getMsg_content() {16 return msg_content;17 }18 19 public void setMsg_content(ArrayListMsgContent msg_content) {20 this.msg_content msg_content;21 }22 } MsgHead.java MsgHead.java 1 public class MsgHead { 2 private String time; 3 private String version; 4 private String msg_type; 5 private String from; 6 private String to; 7 public String getTime() { 8 return time; 9 }10 public void setTime(String time) {11 this.time time;12 }13 public String getVersion() {14 return version;15 }16 public void setVersion(String version) {17 this.version version;18 }19 public String getMsg_type() {20 return msg_type;21 }22 public void setMsg_type(String msg_type) {23 this.msg_type msg_type;24 }25 public String getFrom() {26 return from;27 }28 public void setFrom(String from) {29 this.from from;30 }31 public String getTo() {32 return to;33 }34 public void setTo(String to) {35 this.to to;36 }37 } MsgContent.java MsgContent.java 1 public class MsgContent { 2 private String so_co_serial; 3 private String so_order_id; 4 private String old_so_order_id; 5 private String order_kind; 6 private String oper_reason; 7 private String oper_comment; 8 private String so_staff_id; 9 private String so_staff_code;10 private String so_staff_name;11 private String so_date;12 public String getSo_co_serial() {13 return so_co_serial;14 }15 public void setSo_co_serial(String so_co_serial) {16 this.so_co_serial so_co_serial;17 }18 public String getSo_order_id() {19 return so_order_id;20 }21 public void setSo_order_id(String so_order_id) {22 this.so_order_id so_order_id;23 }24 public String getOld_so_order_id() {25 return old_so_order_id;26 }27 public void setOld_so_order_id(String old_so_order_id) {28 this.old_so_order_id old_so_order_id;29 }30 public String getOrder_kind() {31 return order_kind;32 }33 public void setOrder_kind(String order_kind) {34 this.order_kind order_kind;35 }36 public String getOper_reason() {37 return oper_reason;38 }39 public void setOper_reason(String oper_reason) {40 this.oper_reason oper_reason;41 }42 public String getOper_comment() {43 return oper_comment;44 }45 public void setOper_comment(String oper_comment) {46 this.oper_comment oper_comment;47 }48 public String getSo_staff_id() {49 return so_staff_id;50 }51 public void setSo_staff_id(String so_staff_id) {52 this.so_staff_id so_staff_id;53 }54 public String getSo_staff_code() {55 return so_staff_code;56 }57 public void setSo_staff_code(String so_staff_code) {58 this.so_staff_code so_staff_code;59 }60 public String getSo_staff_name() {61 return so_staff_name;62 }63 public void setSo_staff_name(String so_staff_name) {64 this.so_staff_name so_staff_name;65 }66 public String getSo_date() {67 return so_date;68 }69 public void setSo_date(String so_date) {70 this.so_date so_date;71 }72 } Object转XML得测试类Test.java Test.java 1 package com.asiainfo.b2p.soap.xml.objtoxml; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.OutputStreamWriter; 6 import java.nio.charset.Charset; 7 import java.text.SimpleDateFormat; 8 import java.util.ArrayList; 9 import java.util.Date;10 import java.util.TimeZone;11 import com.asiainfo.b2p.soap.xml.common.*;12 import com.thoughtworks.xstream.XStream;13 14 public class Test {15 public String getCurrentTime() {16 // 设置时区 默认得到的时间和系统时间相差8个小时为了解决此问题设置系统默认的时区17 TimeZone tz TimeZone.getTimeZone(ETC/GMT-8);18 TimeZone.setDefault(tz);19 Date date new Date();// 获取系统时间20 SimpleDateFormat df new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);21 String currentTime df.format(date);// 格式化日期输出22 return currentTime;23 }24 25 public void orderCancel() throws Exception {26 Root root new Root();27 MsgHead msgHead new MsgHead();28 MsgContent msgContent new MsgContent();29 30 msgHead.setTime(getCurrentTime());31 msgHead.setVersion(1.1);32 msgHead.setMsg_type(message_request);33 msgHead.setFrom(CRM);34 msgHead.setTo(SF);35 36 ArrayListMsgHead msg_head new ArrayListMsgHead();37 msg_head.add(msgHead);38 39 // 给每个元素赋值实际开发中值肯定要动态的获取当然这个不是本节的重点40 msgContent.setSo_co_serial(3212131920110517800);41 msgContent.setSo_order_id(3212131920110517801);42 msgContent.setOld_so_order_id(3212131920110517800);43 msgContent.setOrder_kind(1);44 msgContent.setOper_reason(CRMCANCEL);45 msgContent.setOper_comment(服务定单撤单);46 msgContent.setSo_staff_id(111);47 msgContent.setSo_staff_code(x受理人编码);48 msgContent.setSo_staff_name(x受理人名称);49 msgContent.setSo_date(getCurrentTime());50 51 ArrayListMsgContent msg_content new ArrayListMsgContent();52 msg_content.add(msgContent);53 54 root.setMsg_head(msg_head);55 root.setMsg_content(msg_content);56 57 XStream xstream new XStream();// 新建一个转换对象xstream58 // 设置别名 必须设置表明否则显示的时候为类的全路径59 xstream.alias(root, Root.class);60 xstream.alias(msg_head, MsgHead.class);61 xstream.alias(msg_content, MsgContent.class);62 63 // 把Object对象按要求转换为指定的XML文件输出64 FileOutputStream fos new FileOutputStream(new File(D:\\OrderCancel65 System.currentTimeMillis() .xml));66 OutputStreamWriter osr new OutputStreamWriter(fos, Charset67 .forName(GBK));68 String xmlHead ?xml version\1.0\ encoding\UTF-8\?;69 xstream.toXML(root, fos);70 }71 72 public static void main(String[] args) throws Exception {73 Test test new Test();74 test.orderCancel();75 76 }77 78 } 运行截图 从截图可以看出以上转换有两个问题 (1).转换为无XML的定义头语句即?xml version1.0 encodingUTF-8? (2).msg_head和msg_content标签重复了一次   另外需增加一个功能把转换的xml以字符串的形式输出在实际的系统交互中也是传字符串而非文件。   由于时间的关系今天就不调试了明天有时间再调也希望朋友们多提提意见good luck.....   解决前面的两个问题(2011/10/24) 问题1实际开发中系统之间的交互并非用的是xml文件而是xml字符串 故问题1通过把xml转换为字符串然后在字符串前加xml的定义语句。 代码更改(从新建XStream 对象开始后面的都不需要了。代码改为如下) XStream xstreamnew XStream(); String  xmlhead?xml version\1.0\ encoding\UTF-8\?\n; String xmlxstream.toXML(root); String resultxmlxmlheadxml;//此句就是最后格式化输出的xml字符串并且包括xml文件定义头 问题2msg_head和msg_content标签重复了一次 对于这个问题只需要把root.java文件中声明为ArrayList的变量改为如下  private MsgHead msg_head; private MsgContent msg_content; 同时分别设置get和set方法。 对于这种问题有如下结论 如果节点有重复的就用ArrayList类型的变量如果节点没有重复的就声明为如上类型的变量。   经过今天的工作发现以上的问题基本解决了但是输出的xml字符串有换行和缩进 这样和和实际中的需求稍有不同考虑如何设置通过XSrteam输出的字符串的格式 去掉换行和缩进 //匹配字符串中的空白字符(至少2次)、制表符、回车符、新行换行符   Pattern p Pattern.compile(\\s{2,}|\t|\r|\n);   Matcher m p.matcher(xml);  finalresult m.replaceAll();   如果您比较细心的看过会发现凡是下划线就会显示两个即占用两个字符 这个和我的需求是不一样的解决此种问题两种方法 方式1声名XStream对象的时候用它的构造方法代码如下   XStream xstream new XStream(new XppDriver(new XmlFriendlyReplacer(-_, _))); 方法2用replace(__,_)来解决 finalresultfinalresult.replace(__,_);      转载于:https://www.cnblogs.com/java-pan/archive/2011/10/25/Object_xml.html
http://www.zqtcl.cn/news/460361/

相关文章:

  • 学到什么程度可以做网站网站维护的要求包括
  • 泉州网站设计平台南阳响应式网站
  • 阿里云 企业网站选哪种推广普通话的文字内容
  • 广州市南沙建设局网站中山建网站咨询电话
  • 怎么创建网站快捷方式网络服务器搭建配置与管理 下载
  • 现在什么类型网站没有人做wordpress get_categories()
  • 石家庄网站推广优化闲鱼网络营销方式
  • 精诚时代 网站谁做的北京网站设计必看刻
  • 长沙网站排名报价企业管理培训课程网课
  • 怎样做婚庆网站外贸网站怎么注册
  • 网站设计制作公司推荐自己做商务网站有什么利弊
  • 传媒网站杨浦网站建设哪家好
  • 500m主机空间能做视频网站吗做中文网站的公司
  • 网站建设规划模板公司网站建设论文
  • p2p网站开发的内容广东世纪达建设集团有限公司官方网站
  • 网站基本建设是什么o元做网站
  • 南昌做购物网站的公司mc做弊端网站
  • 汕头制作网站推荐文化建设五大工程
  • 公司购物网站备案遵义市乡村街道建设投诉网站
  • ps做景观有哪些素材网站网站推广软文
  • 医疗类网站备案dw网页设计期末作业源代码
  • 网站建设开发合同别具光芒 Flash互动网站设计
  • app导航网站建设多少钱网页游戏破解版
  • 布吉做棋牌网站建设哪家服务好青海做高端网站建设的公司
  • 邙山郑州网站建设好看手机网站推荐
  • 北京建设网官方网站外贸wordpress收款插件
  • 网站关键词进前三响应式手机网站模版
  • 网站采集来源制作好网站
  • 哪个网站有工笔教程免费物流公司网站模板
  • 网站怎么做才有收录西安建设工程信息网人员查询