Web services 如何在SOAP UI中修改onRequestscript()上的xml

Web services 如何在SOAP UI中修改onRequestscript()上的xml,web-services,soap,groovy,soapui,Web Services,Soap,Groovy,Soapui,这是我在onRequestscript中编写的代码 def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) path = "D:\\Service\\something2.xml"; log.info("path = "+ path); if (mockRequest.method == "POST" ) { mockRunner.returnFile( mockRequest.httpResponse, new

这是我在onRequestscript中编写的代码

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
path = "D:\\Service\\something2.xml";
log.info("path = "+ path);
if (mockRequest.method == "POST" )
{
mockRunner.returnFile( mockRequest.httpResponse, new File(path))
return new com.eviware.soapui.impl.wsdl.mock.WsdlMockResult(mockRequest)
}
但是这个脚本完全改变了我的XML。。。我想修改现有的XML(something.XML)

我实际上无法修改xml,所以我想改为修改xml。。。那么有人能帮我修改xml吗 在onRequestscript中

类XML

<Something>
    <Data1>
      <value>100</value>
    <Data1>
    <Data2>
      <value>200</value>
    <Data2>
</Something>

100
200
改成这样

    <Something>
    <Data1>
      <value>101</value>
    <Data1>
    <Data2>
      <value>201</value>
    <Data2>
</Something>

101
201

您可以使用XmlSlurper解析和更新XML文件中的值。然后从更新的XML生成一个字符串,并将其设置为模拟服务的响应

我使用免费的SOAPUI3.6.1,但它的输出对象似乎与您的示例不同。根据需要修改代码

// get and parse XML file content
path = "D:\\Service\\something2.xml";
def doc = new XmlSlurper().parse(path)

// update values
doc.Data1.value[0] = 101
doc.Data2.value[0] = 201

// generate and return XML string as service response
import groovy.xml.StreamingMarkupBuilder
def result = new StreamingMarkupBuilder().bind{ mkp.yield doc  }.toString()
mockResponse.setResponseContent(result)

您能否提供XML的示例以及如何更改它?我还假设web服务对象不会改变XML的内容?!?!我更新了我的问题…对不起,我不明白。是否要在根节点上放置空格/制表符?目的何在?Web服务通常不关心空间之类的东西。哦。。。我看到您想要更改节点中的值。。。。让我明天看看。