我需要使用 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>
最佳答案
如果您使用的是 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())
但我不确定响应
的类型是什么。这里我假设 XmlTokenSource
来自 XmlBeans
。
这应该适用于 SoapUI XmlHolder
:
def root = new XmlSlurper().parseText(response.getXml())
关于java - 从 XML 解析数据的 Groovy 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12104771/