import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.xml.sax.InputSource; /** * 解析报文的方法 * @param String messXmlStr 要解析的报文String * @author Mar * */ public Map<String,String> analyzeMessXml(String messXmlStr) throws Exception{ Map<String,String> xmlMap=new HashMap<String, String>(); StringReader read = new StringReader(messXmlStr); InputSource source = new InputSource(read);//使用字符流创建新的输入源 SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(source); //Document doc = builder.build(new File("file/disk.xml")); Element root = doc.getRootElement(); List<Element> eleList=root.getChildren(); for (Element element : eleList) { String name=element.getName(); if(name.equals("IF_EXIST")){ xmlMap.put("ifExist", root.getChildText("IF_EXIST"));// 是否存在 【0 不存在 1 存在】 if(root.getChild("QRY_ADDRESS")!=null){//[调阅] xmlMap.put("url", root.getChildText("QRY_ADDRESS"));//电子保单调阅路径 } if(root.getChild("LOAD_FLG")!=null){//[下载] xmlMap.put("loadFlg", root.getChildText("LOAD_FLG"));//是否允许下载【 0 不允许 1 允许下载】 } if(root.getChild("FLG")!=null){//[作废] xmlMap.put("flg", root.getChildText("FLG"));//是否修改成功 } break; }else if (name.equals("signature")) {// 验真接口报文 xmlMap.put("curRevision", element.getChildText("cur_revision"));//当前验签版本 xmlMap.put("totalRevision", element.getChildText("total_revision"));//共有版本数 xmlMap.put("subject", element.getChildText("subject"));//签名信息【{ST=[北京], C=[CN], L=[西城区], OU=[信息技术部], O=[中华联合], CN=[XX财产保险股份有限公司]}】 xmlMap.put("modified", element.getChildText("modified"));//签名版本的文档是否被修改,true表示被修改,false表示未被修改 xmlMap.put("verified", element.getChildText("verified"));//签名是否有效,true表示签名有效,false表示签名无效 break; } } return xmlMap; }
时间: 2024-10-29 20:36:19