【发布时间】:2015-04-29 22:04:26
【问题描述】:
我有一个由应用程序生成的 XML 文本,我需要在它周围包裹一个 SOAP 信封,然后再进行 Web 服务调用。
以下代码构建了信封,但我不知道如何将现有 XML 数据添加到 SOAPBody 元素中。
String rawXml = "<some-data><some-data-item>1</some-data-item></some-data>";
// Start the API
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage request = mf.createMessage();
SOAPPart part = request.getSOAPPart();
SOAPEnvelope env = part.getEnvelope();
// Get the body. How do I add the raw xml directly into the body?
SOAPBody body = env.getBody();
我尝试过body.addTextNode(),但它添加了内容,所以< 和其他人被转义了。
【问题讨论】:
-
body.appendChild(document.createTextNode(rawXml));怎么样?我没有尝试过,但在文档中我看到SOAPBody继承自 DOM 元素,因此可以工作;)document是一个 DOM 文档对象。 -
@rzysia 那很接近。执行此操作时出现 WRONG_DOCUMENT_ERR 异常,但随后
body.addDocument(document);成功了 =)。我会发布完整的代码。