From 4b403bf22937f4e9ff9f53911b606e74c1fd9ce3 Mon Sep 17 00:00:00 2001 From: dongxiaoke <1910333201@qq.com> Date: Tue, 18 Jul 2023 18:14:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=8F=B0=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jianshui/api/config/WebServiceConfig.java | 2 +- .../api/config/WebserviceResponseHandler.java | 151 +++++++++++------- .../v1/impl/InvoiceCheckWebServiceImpl.java | 12 +- 3 files changed, 103 insertions(+), 62 deletions(-) diff --git a/jianshui-admin/src/main/java/com/jianshui/api/config/WebServiceConfig.java b/jianshui-admin/src/main/java/com/jianshui/api/config/WebServiceConfig.java index 66ba6ea..013a47a 100644 --- a/jianshui-admin/src/main/java/com/jianshui/api/config/WebServiceConfig.java +++ b/jianshui-admin/src/main/java/com/jianshui/api/config/WebServiceConfig.java @@ -37,7 +37,7 @@ public class WebServiceConfig { // EndpointImpl endpoint = new EndpointImpl(springBus(), invoiceCheckWebService); EndpointImpl endpoint = new EndpointImpl(springBus(), invoiceCheckWebService); WebserviceResponseHandler webserviceResponseHandler = webserviceResponseHandler(); - endpoint.getHandlers().add(webserviceResponseHandler); +// endpoint.getHandlers().add(webserviceResponseHandler); endpoint.publish("/income/v1/check"); return endpoint; } diff --git a/jianshui-admin/src/main/java/com/jianshui/api/config/WebserviceResponseHandler.java b/jianshui-admin/src/main/java/com/jianshui/api/config/WebserviceResponseHandler.java index 75b2054..030fb85 100644 --- a/jianshui-admin/src/main/java/com/jianshui/api/config/WebserviceResponseHandler.java +++ b/jianshui-admin/src/main/java/com/jianshui/api/config/WebserviceResponseHandler.java @@ -4,11 +4,21 @@ import cn.hutool.core.util.XmlUtil; import org.w3c.dom.*; import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPMessage; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; import javax.xml.ws.handler.MessageContext; import javax.xml.ws.handler.soap.SOAPHandler; import javax.xml.ws.handler.soap.SOAPMessageContext; +import java.io.StringWriter; import java.util.Set; /** @@ -22,6 +32,18 @@ public class WebserviceResponseHandler implements SOAPHandler"); + + System.out.println(xmlStr); + CDATASection cdata = dataNode.getOwnerDocument().createCDATASection( xmlStr ); +// CDATASection cdata = dataNode.getOwnerDocument().createCDATASection( "<" + dataNode.getNodeName() +">>"); + returnNode.removeChild(dataNode); + returnNode.appendChild(cdata); + +// dataNode.getOwnerDocument().getDocumentElement().setAttribute("",""); +// dataNode.getOwnerDocument().setXmlVersion(""); + // 设置 SOAP 版本为 1.1\ + // body.getFirstChild().getOwnerDocument().setTextContent(XmlUtil.toStr(dataNode)); // body.removeChild(dataNode); @@ -150,7 +186,7 @@ public class WebserviceResponseHandler implements SOAPHandler>"; + String cdatameg = "<" + childNode.getNodeName() + ">>"; String cdatamegRes = cdatameg.replaceAll("<#text>", "").replaceAll("", ""); childNode.setTextContent(cdatamegRes); } else { - String cdatameg = ">>>"; } - System.out.println(a); + System.out.println(a);*/ } public static void main(String[] args) { - String aaaa = "\n" + - " \n" + - " \n" + - " 2019-05-23\n" + - " 54.00\n" + - " 92370100MA3EKX4426\n" + - " \n" + - " \n" + - " 高新开发区舜华惠嘉餐厅\n" + - " N\n" + - " 99424340\n" + - " 661720186729\n" + - " 037001700107\n" + - " N\n" + - " 1.57\n" + - " 个人\n" + - " \n" + - " 11\n" + - " \n" + - " 52.43\n" + - " 781948\n" + - " \n" + - " \n" + - " 1\n" + - " \n" + - " 1.57\n" + - " 3070401000000000000\n" + - " *餐饮服务*餐费\n" + - " \n" + - " \n" + - " \n" + - " 52.43\n" + - " 3%\n" + - " \n" + - " \n" + - " \n" + - " 1\n" + - " 查验成功\n" + - " \n" + - " "; - - String nodeStr = aaaa; - String[] nodeStrList = nodeStr.split(">"; + // 创建父元素节点 myData + Element myDataElement = document.createElement("myData"); + // 创建字符数据块节点 + CDATASection cdata = document.createCDATASection("]]>This is some data"); + myDataElement.appendChild(cdata); + + // 将 myData 父元素节点添加到根元素中 + rootElement.appendChild(myDataElement); + + // 创建父元素节点 Fp + Element FpElement = document.createElement("Fp"); + + // 创建字符数据块节点 + CDATASection cdata1 = document.createCDATASection("]]>This is some data"); + FpElement.appendChild(cdata1); + + // 将 Fp 父元素节点添加到根元素中 + rootElement.appendChild(FpElement); + + // 将根元素节点添加到文档中 + document.appendChild(rootElement); + + + // 移除standalone属性 + document.setXmlStandalone(true); + + // 将 Document 对象转换为字符串输出 + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + + // 设置输出属性,包括编码方式 + transformer.setOutputProperty(OutputKeys.METHOD, "xml"); + transformer.setOutputProperty(OutputKeys.ENCODING, "GBK"); + // 美化输出格式 + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + + // 将 XML 声明节点插入到文档开头 + DOMSource source = new DOMSource(document); + StreamResult result = new StreamResult(System.out); + transformer.transform(source, result); + } catch (ParserConfigurationException | TransformerException e) { + e.printStackTrace(); } - /*String[] aRs = a.split("]]]]"); - String b = ""; - for (String aR : aRs) { - b = b + " getInvoiceMap = new LinkedHashMap(); if (InvoiceType.ER_SHOU_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())) { //二手车相关结果 - getInvoiceMap.put("fpdm",invoiceCheck.getFpdm()); - getInvoiceMap.put("fphm",invoiceCheck.getFphm()); + getInvoiceMap.put("fpdm", invoiceCheck.getFpdm() ); + getInvoiceMap.put("fphm", invoiceCheck.getFphm() ); getInvoiceMap.put("kprq",newKprq); getInvoiceMap.put("gfmc",invoiceCheck.getInvoiceCheckUsedCar().getMfdwgr()); getInvoiceMap.put("gfsh",invoiceCheck.getInvoiceCheckUsedCar().getMfdwdmsfzh()); @@ -414,7 +418,7 @@ public class InvoiceCheckWebServiceImpl { } else if (InvoiceType.JUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())) { //卷票 getInvoiceMap.put("fpdm",invoiceCheck.getFpdm()); - getInvoiceMap.put("fphm",invoiceCheck.getFphm()); + getInvoiceMap.put("fphm", invoiceCheck.getFphm()); getInvoiceMap.put("kprq",newKprq); getInvoiceMap.put("gfmc",invoiceCheck.getGmfmc()); getInvoiceMap.put("gfsh",invoiceCheck.getGmfsbh()); @@ -693,6 +697,7 @@ public class InvoiceCheckWebServiceImpl { Element jshj = jsonElement(result, "jshj", jshjLinkedHashMap); getInvoiceDoc.appendChild(jshj); } + return buildResult(result, "1", "查验成功", getInvoiceDoc); } @@ -708,6 +713,7 @@ public class InvoiceCheckWebServiceImpl { Element element = result.createElement(key); element.setTextContent(value); parent.appendChild(element); + }); return parent; }