首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >soap动态响应

soap动态响应
EN

Stack Overflow用户
提问于 2020-12-10 13:19:39
回答 1查看 213关注 0票数 0

我需要找到动态生成Soap模拟响应的方法。我有一个请求示例(我们必须将字段elem放在listelem中):

请求

代码语言:javascript
复制
 <soapenv:Level1>
      <v1:listelem>
         <v2:elem>
            <v11:data1>?</v11:data1>
            <v11:data2>?</v11:data2>
         </v2:elem>
         <v2:elem>
            <v11:data1>?</v11:data1>
            <v11:data2>?</v11:data2>
         </v2:elem>
         <v2:elem>
            <v11:data1>?</v11:data1>
            <v11:data2>?</v11:data2>
         </v2:elem>
      </v1:listelem>
   </soapenv:Level1>

在我的请求中,我可以找到从0到n元素的,我必须将这些数据转换成response,这个字段类似于:Response

代码语言:javascript
复制
 <soapenv:Level1>
          <v1:OtherData>
          </v1:OtherData>
          <v1:EvenOtherData>
          </v1:EvenOtherData>
          <v1:listelem>
             <v2:elem>
                <v11:data1>?</v11:data1>
                <v11:data2>?</v11:data2>
                <v11:respose>?</v11:respose>
             </v2:elem>
             <v2:elem>
                <v11:data1>?</v11:data1>
                <v11:data2>?</v11:data2>
                <v11:respose>?</v11:respose>
             </v2:elem>
             <v2:elem>
                <v11:data1>?</v11:data1>
                <v11:data2>?</v11:data2>
                <v11:respose>?</v11:respose>
             </v2:elem>
          </v1:listelem>
       </soapenv:Level1>

如何在响应中创建N个节点(名为element)?我必须在其他节点之后添加另一个节点。我试过用剧本来做这件事,但我没有成功。

EN

回答 1

Stack Overflow用户

发布于 2020-12-31 13:45:06

我在示例中添加了namsespace声明。

代码语言:javascript
复制
<soapenv:Level1 xmlns:soapenv="1"  xmlns:v1="v1" xmlns:v2="v2" xmlns:v11="v11">

在SOAP响应中尝试此脚本

代码语言:javascript
复制
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holderRequest = groovyUtils.getXmlHolder( mockRequest.requestContent )
def holderResponse = groovyUtils.getXmlHolder( mockResponse.responseContent )

listelemRequest =  holderRequest.getDomNode("//v1:listelem")
Level1Response =  holderResponse.getDomNode("//soapenv:Level1")
listelemResponse =  holderResponse.getDomNode("//v1:listelem")

//Coppy listelem from request to response
listelem = listelemResponse.getOwnerDocument().importNode(listelemRequest, true)
Level1Response.replaceChild(listelem,listelemResponse) 

//List nodes of elements
nodes =  holderResponse.getDomNodes("//v2:elem")

for(node in nodes){ 
    def nodeHolder  = groovyUtils.getXmlHolder("""<v11:response xmlns:v11="v11">?</v11:response>""")
    def itemNode = nodeHolder.getDomNode("//v11:response" )
    def responseElem = node.getOwnerDocument().importNode(itemNode,true)
    node.appendChild(responseElem)
}

mockResponse.setResponseContent(holderResponse.getXml())

脚本复制从请求到响应的列表,并添加项“响应”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65235320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档