使用Java将包含XML的字符串添加到SOAPElement
我必须将excel文件中的数据作为XML发送到Web服务。表中的数据看起来有点像这样: 第一行始终包含列数据的XML标记。大多数数据列只包含字符串,但有些列包含xml。这些子节点对于Webservice接受数据非常重要 我正在使用SOAP,为每一列创建一个新的SOAPElement,其中每一行都是一个新的SOAP请求使用Java将包含XML的字符串添加到SOAPElement,java,xml,soap,Java,Xml,Soap,我必须将excel文件中的数据作为XML发送到Web服务。表中的数据看起来有点像这样: 第一行始终包含列数据的XML标记。大多数数据列只包含字符串,但有些列包含xml。这些子节点对于Webservice接受数据非常重要 我正在使用SOAP,为每一列创建一个新的SOAPElement,其中每一行都是一个新的SOAP请求 SOAPElement newElement = body.addChildElement(tagForThisColumn); newElement.addTextNode(s
SOAPElement newElement = body.addChildElement(tagForThisColumn);
newElement.addTextNode(stringValueOfCell);
这对字符串值非常有效,但是SOAPElement用xml转义所有单元格的“”
我已经在寻找答案,并找到了一些类似问题的解决方案,但没有一个适合我的 您应该向SoapElement添加一个节点。 我通过向soap头中的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);
我希望它有用