package com.hand.hsbc; import java.io.File; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Namespace; import org.dom4j.Node; import org.dom4j.io.SAXReader; public class SaxReaderXml { /** * <p> * 解析汇丰银行确认文件1,确认文件1无误则有2 * </p> * * @author keyouyuan16914 * @version 1.0.0 * @date 2020/01/18 */ public static String parseacKnowledge1(String path) { path = "C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\error1.xml"; SAXReader reader = new SAXReader(); Document document; String error_msg = ""; try { document = reader.read(new File(path)); Element root = document.getRootElement(); Element Body = root.element("CstmrPmtStsRpt"); List<Element> OrgnlGrpInfAndSts = Body.element("OrgnlGrpInfAndSts").elements(); for (int i = 0; i < OrgnlGrpInfAndSts.size(); i++) { Element item = OrgnlGrpInfAndSts.get(i); String GrpSts = null; if (item.getName() == "GrpSts") { GrpSts = item.getTextTrim(); /* System.out.println(GrpSts); */ if ("".equals(GrpSts)) { GrpSts = null; } } if (GrpSts == "ACCP") { return "SUCCESS"; } else { if (item.getName() == "StsRsnInf") { List<Element> StsRsnInfs = item.elements(); for (int j = 0; j < StsRsnInfs.size(); j++) { Element item2 = StsRsnInfs.get(j); if (item2.getName() == "AddtlInf") { error_msg += item2.getTextTrim(); } } } /* System.out.println(error_msg); */ } } } catch (DocumentException e) { e.printStackTrace(); } return error_msg; } /** * <p> * 解析汇丰银行确认文件2 * </p> * * @author keyouyuan16914 * @version 1.0.0 * @date 2020/01/18 */ public static String parseacKnowledge2(String path) { path = "C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\正确确认文件2.xml"; SAXReader reader = new SAXReader(); Document document; String error_msg = ""; try { document = reader.read(new File(path)); Element root = document.getRootElement(); Element Body = root.element("CstmrPmtStsRpt"); List<Element> OrgnlGrpInfAndSts = Body.element("OrgnlPmtInfAndSts").elements(); for (int i = 0; i < OrgnlGrpInfAndSts.size(); i++) { Element item = OrgnlGrpInfAndSts.get(i); String PmtInfSts = null; if (item.getName() == "PmtInfSts") { PmtInfSts = item.getTextTrim(); /* System.out.println(GrpSts); */ if ("".equals(PmtInfSts)) { PmtInfSts = null; } } if (PmtInfSts == "ACCP") { return "SUCCESS"; } else { // 此处需要进行判断 /* * if(item.getName()=="StsRsnInf") { List<Element> StsRsnInfs=item.elements(); * for (int j=0; j<StsRsnInfs.size(); j++) { Element item2 = StsRsnInfs.get(j); * if(item2.getName()=="AddtlInf"){ error_msg+= item2.getTextTrim(); * * } } * * } */ /* System.out.println(error_msg); */ } } } catch (DocumentException e) { e.printStackTrace(); } return error_msg; } /** * <p> * 解析汇丰银行日中文件2 * </p> * * @author keyouyuan16914 * @version 1.0.0 * @date 2020/01/18 */ public static String parseDayMidFile(String path, String cdValue) { cdValue="ITBD"; path = "C:\\Users\\User\\Desktop\\testfiledir\\down_day_mid_result\\testMid.xml"; SAXReader reader = new SAXReader(); Document document; String error_msg = ""; try { document = reader.read(new File(path)); Element root = document.getRootElement(); Element Body = root.element("BkToCstmrAcctRpt"); Element Rpt = Body.element("Rpt"); List<Element> Rpts = Rpt.elements(); System.out.println(Rpts.size()); for (int i = 0; i < Rpts.size(); i++) { Element item = Rpts.get(i); String amt = null; if (item.getName() == "Bal") { System.out.println(item.element("Tp").getName()); System.out.println(item.element("Tp").element("CdOrPrtry").getName()); System.out.println(item.element("Tp").element("CdOrPrtry").element("Cd").getName()); System.out.println(item.element("Tp").element("CdOrPrtry").element("Cd").getTextTrim()); String ss=item.element("Tp").element("CdOrPrtry").element("Cd").getTextTrim(); System.out.println("1111"); System.out.println(ss.toString()); if(ss.toString().equals(cdValue)) { System.out.println("2222"); System.out.println(item.element("Amt").getTextTrim()); } } if (amt == "ACCP") { return "SUCCESS"; } else { // 此处需要进行判断 /* * if(item.getName()=="StsRsnInf") { List<Element> StsRsnInfs=item.elements(); * for (int j=0; j<StsRsnInfs.size(); j++) { Element item2 = StsRsnInfs.get(j); * if(item2.getName()=="AddtlInf"){ error_msg+= item2.getTextTrim(); * * } } * * } */ /* System.out.println(error_msg); */ } } } catch (DocumentException e) { e.printStackTrace(); } return error_msg; } public static String xmlToString(String xmlFileName){ SAXReader saxReader=new SAXReader(); org.dom4j.Document document; String xmlString=""; try { document = saxReader.read(new File(xmlFileName)); xmlString=document.asXML(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); xmlString=""; } //String xmlString = document.asXML(); return xmlString; } public static void main(String[] args) throws Exception { System.out.println(xmlToString("C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\ACK1PSRV3.PC000018926.20201231113053992299.20210121114031002.XML")); } }