0

我需要使用 groovy 脚本从下面的 xml 文件中获取值 3。我正在从 SOAPUI 进行测试

 <ParamId>3</ParamId>

谁能分享我获取价值的语法?我尝试了以下代码。但我认为我需要迭代到第三个参数 ..

def msgTxt = response.getDomNode("//ns2:ParamId").getLastChild().getNodeValue()  



<RequestParams>
            <Param>
               <ParamId>1</ParamId>
               <ParamName>Name1</ParamName>
               <ParamType>String</ParamType>
               <ParamValue>value1</ParamValue>
            </Param>
            <Param>
               <ParamId>2</ParamId>
               <ParamName>Name2</ParamName>
               <ParamType>String</ParamType>
               <ParamValue>value2</ParamValue>
            </Param>
            <Param>
               <ParamId>3</ParamId>
               <ParamName>Name3</ParamName>
               <ParamType>String</ParamType>
               <ParamValue>2</ParamValue>
            </Param>
</RequestParams>
4

2 回答 2

3

如果您使用的是 groovy 脚本,那么这将起作用。

parse.groovy

import org.apache.maven.artifact.ant.shaded.xml.XmlStreamReader
/**
 * @author maba, 2012-08-24
 */

def root = new XmlSlurper().parse(new XmlStreamReader(new File('path/to/data', 'data.xml')))
def msgText = root.Param[2].ParamId.text()

而且我认为您可以这样做而不是从文件中读取:

def root = new XmlSlurper().parseText(response.xmlText())

但我不确定是什么类型response。在这里,我假设一个XmlTokenSourcefrom XmlBeans


这应该适用于 SoapUI XmlHolder

def root = new XmlSlurper().parseText(response.getXml())
于 2012-08-24T09:01:34.667 回答
2

查看 Groovy文档页面中的 XmlParser 或 XmlSlurper 示例

于 2012-08-24T08:51:02.240 回答