我必须将 Excel 文件中的数据作为 XML 发送到 Web 服务。表中的数据看起来有点像这样:请参阅此处的表格示例! https://i.stack.imgur.com/NEOTi.png
第一行始终包含该列数据的 XML 标记。大多数数据列只包含字符串,但有些数据列包含 xml。这些子节点对于 Web 服务接受数据非常重要。
我正在使用 SOAP,为每一列创建一个新的 SOAPElement,其中每一行都是一个新的 SOAP 请求。
SOAPElement newElement = body.addChildElement(tagForThisColumn);
newElement.addTextNode(stringValueOfCell);
这对于字符串值来说非常有效,但是 SOAPElement 使用 xml 转义了单元格的所有“”。
我已经寻找答案并找到了类似问题的一些解决方案,但没有一个适合我的..
您应该向 SoapElement 添加一个节点。
我通过向肥皂头中的 SoapElement 添加 SAML 令牌来完成类似的操作:
SOAPHeader header = envelope.addHeader();
SOAPElement security = header.addChildElement("Security", "wsse",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
File file = new File("your-file.xml");
/* parse existing file to DOM */
Document document = documentBuilder.parse(new FileInputStream(file));
Document securityDoc = security.getOwnerDocument();
Node newNode = securityDoc.importNode(document.getFirstChild(), true);
//Add the Node
security.appendChild(newNode);
我希望它有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)