java - 如何更改 SOAPBODY 中的子元素

标签 java web-services soap xml-parsing

我有一个soapMessage,我正在将其写入ByteArrayOutputStream以记录请求 但我必须在记录之前更改 p803:Credential 子元素值,我该怎么做?

ByteArrayOutputStream out = new ByteArrayOutputStream();
soapMessageCtx.getMessage().writeTo(out);

这是请求 xml

<soapenv:Body>
<p803:multiple xmlns:p803="http://www.abc.com/model">

<p803:RequestContext>
<p803:Credential>2222222/iuuiiiuuuu</p803:Credential>

最佳答案

试试这个:

SOAPMessage soapMsg = soapMessageCtx.getMessage();
NodeList credentials = soapMsg
                        .getSOAPBody()
                        .getElementsByTagNameNS("http://rsi.chase.com/model", "Credential");

int len = credentials.length();
for(int i = 0; i < len; i++) { 
    credentials.item(i).setTextContent("new credential content goes here...");
}

ByteArrayOutputStream out = new ByteArrayOutputStream();
soapMsg.writeTo(out);

// ...

关于java - 如何更改 SOAPBODY 中的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20885825/

相关文章:

ruby - 我如何使用 savon 嵌套属性!哈希?

java - 如何检查web服务是否可用,然后一次性连接上?

java - 提出 SOAP 请求时出现问题

java - 使用 bouncycaSTLe 对集中式 PKI 中的私钥进行加密

wcf - 如何在 WCF Web 服务中检测用户代理

java - 如何改变JFrame的背景颜色

c# - 从另一台机器调用 Web 服务

web-services - WS-CDL的实际使用

java - infinispan 文件存储大小与数据大小不成比例

java - JVM JIT 编译器如何优化 "duplicated"Java 代码?