项目问题之:解析xml
xml 报文的组装:
1.使用String.format通过占位符拼接;(采用这种,优势简化代码)
String.format的用法
2.使用目前项目中得方法,使用ftl模板 算了没看懂
String strRequestXML = ""; try { //将DTO转换成xml Mappacket = new HashMap (); packet.put("packet",packetDto); FreemarkerUtil.initTemplate(templateFile); // 获取模板 strRequestXML = FreemarkerUtil.returnXML(packet); // 返回接口使用的参数 } catch (Exception e) { e.printStackTrace(); }
xml的解析目前想到的方法:
1,写个截取字符串的方法,以前在别的项目中看到过
思路就是 入参为节点 找到 两个位置 ,然后截取
2.使用目前项目解析方式 XStream是一个Java对象和XML相互转换的工具 麻烦需要配置 xml对应的解析类
思路详情:使用XStream实现Java对象与XML互相转换 segmentfault 思否
responseStr = SendPropertyDoPost(packetDto,sendType); Body body = new Body(); Head head = new Head(); Object objbody = null; Object objhead = null; objhead = ParserXml.getHead(responseStr); head = (Head)objhead; 1.stinrg 转 body public static Object getBody(String s) { // String s = new SendCarInfoToCore().SendCarInfoDoPost(); String xmlString = deleteXMLTag(s); try { Packet packet = toBean(xmlString, Packet.class); return packet.getBody(); } catch (Exception e) { ErrRoot errRoot = toBean(xmlString, ErrRoot.class); e.printStackTrace(); return errRoot.getRetMsg(); } }
2.Packet.java
package com.sinosoft.b2c.propertyInsurance.agriculture.Dto; import com.thoughtworks.xstream.annotations.XStreamAlias; @XStreamAlias("Packet") public class Packet { @XStreamAlias("Body") private Body body; @XStreamAlias("Head") private Head head; public Body getBody() { return body; } public void setBody(Body body) { this.body = body; } public Head getHead() { return head; } public void setHead(Head head) { this.head = head; } }
3.Body.java
package com.sinosoft.b2c.propertyInsurance.agriculture.Dto; import java.util.List; import com.thoughtworks.xstream.annotations.XStreamAlias; @XStreamAlias("Body") public class Body { @XStreamAlias("OperInfo") private OperInfoDto operInfo; @XStreamAlias("ClaimInfoList") private ListtaskList; @XStreamAlias("ImageInfoList") private List imageInfoList; public List getImageInfoList() { return imageInfoList; } public void setImageInfoList(List imageInfoList) { this.imageInfoList = imageInfoList; } public List getTaskList() { return taskList; } public void setTaskList(List taskList) { this.taskList = taskList; } public OperInfoDto getOperInfo() { return operInfo; } public void setOperInfo(OperInfoDto operInfo) { this.operInfo = operInfo; } }
3.百度 J-A-X-B
Java解析XML(4种方法)
XML解析之DOM解析详解
JAXB轻松转换xml对象和java对象
java socket报文通信(三)java对象和xml格式文件的相互转换
TRANSLATE with| Arabic | Hebrew | Polish |
| Bulgarian | Hindi | Portuguese |
| Catalan | Hmong Daw | Romanian |
| Chinese Simplified | Hungarian | Russian |
| Chinese Traditional | Indonesian | Slovak |
| Czech | Italian | Slovenian |
| Danish | Japanese | Spanish |
| Dutch | Klingon | Swedish |
| English | Korean | Thai |
| Estonian | Latvian | Turkish |
| Finnish | Lithuanian | Ukrainian |
| French | Malay | Urdu |
| German | Maltese | Vietnamese |
| Greek | Norwegian | Welsh |
| Haitian Creole | Persian |