Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从XML解析数据的Groovy语法_Java_Parsing_Xpath_Groovy_Soapui - Fatal编程技术网

Java 从XML解析数据的Groovy语法

Java 从XML解析数据的Groovy语法,java,parsing,xpath,groovy,soapui,Java,Parsing,Xpath,Groovy,Soapui,我需要使用groovy脚本从下面的xml文件中获取值3。 我正在从SOAPUI进行测试 <ParamId>3</ParamId> 3 有人能告诉我获取值的语法吗? 我尝试了以下代码。但我想我需要迭代到第三个参数 def msgTxt = response.getDomNode("//ns2:ParamId").getLastChild().getNodeValue() <RequestParams> <Param&

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

 <ParamId>3</ParamId>
3
有人能告诉我获取值的语法吗? 我尝试了以下代码。但我想我需要迭代到第三个参数

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>
def msgTxt=response.getDomNode(“//ns2:ParamId”).getLastChild().getNodeValue()
1.
名称1
一串
价值1
2.
姓名2
一串
价值2
3.
名字3
一串
2.

检查Groovy中的XmlParser或XmlSlurper示例

检查Groovy中的XmlParser或XmlSlurper示例

如果您使用的是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())
但我不确定
响应的类型是什么。在这里,我假设了一个来自
XmlBeans


这应该适用于SoapUI
XmlHolder

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

如果您使用的是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())
但我不确定
响应的类型是什么。在这里,我假设了一个来自
XmlBeans


这应该适用于SoapUI
XmlHolder

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

我添加了SoapUI的部分。XmlSlurper非常好,它使用表达式在XML树中导航。嗨,maba,如果可能的话,你能回答这个问题吗。很抱歉,我实际上需要从xmlI为SoapUI添加的请求中获取值。XmlSlurper非常好,它使用表达式在XML树中导航。嗨,maba,如果可能的话,你能回答这个问题吗。抱歉,我实际上需要从请求xml中获取值