用于解析XML数据的Groovy语法

时间:2012-08-24 07:15:50

标签: java parsing xpath groovy soapui

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

 <ParamId>3</ParamId>

任何人都可以分享我的语法来获取价值吗? 我尝试了以下代码。但我想我需要迭代到第三个Param ..

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>

2 个答案:

答案 0 :(得分: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的类型是什么。我假设XmlBeans来自XmlHolder


这适用于SoapUI def root = new XmlSlurper().parseText(response.getXml())

{{1}}

答案 1 :(得分:2)

查看Groovy documentation page中的XmlParser或XmlSlurper示例