Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java将包含XML的字符串添加到SOAPElement_Java_Xml_Soap - Fatal编程技术网

使用Java将包含XML的字符串添加到SOAPElement

使用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

我必须将excel文件中的数据作为XML发送到Web服务。表中的数据看起来有点像这样:

第一行始终包含列数据的XML标记。大多数数据列只包含字符串,但有些列包含xml。这些子节点对于Webservice接受数据非常重要

我正在使用SOAP,为每一列创建一个新的SOAPElement,其中每一行都是一个新的SOAP请求

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);
我希望它有用