上游报文格式变更,没办法,时间紧,手写一版,写死先凑合用,哪位有更好解决方案欢迎指导交流
由<updateType xsi:type="int">2</updateType >
变更为
<updateType href="#id2"/>
<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">2</multiRef>
以下为代码;
package xxx.xxx;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.*;
public class ParseXml {
public Map<String,Object>map = new HashMap<String,Object>();
public static Map<String,Object> hrefMap = new HashMap<String,Object>();
public static Map<String,Object> multiRefMap = new HashMap<String,Object>();
public Map parse(String soap) throws DocumentException{
Document doc = DocumentHelper.parseText(soap);//报文转成doc对象
Element root = doc.getRootElement();//获取根元素,准备递归解析这个XML树
getCode(root);
for(String str : hrefMap.keySet()){
map.put(str,multiRefMap.get(hrefMap.get(str).toString().substring(1)));
}
return map;
}
public void getCode(Element root){
if(root.elements()!=null){
List<Element>list = root.elements();//如果当前跟节点有子节点,找到子节点
for(Element e:list) {//遍历每个节点
if (e.elements().size() > 0) {
getCode(e);//当
soap协议解析href multiRef 格式数据
最新推荐文章于 2023-03-12 14:32:04 发布