java - 从 XML 解析数据的 Groovy 语法

标签 java parsing xpath groovy soapui

我需要使用 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/

相关文章:

java - 使用 maven gwt 插件运行 GWTTestCase 时出错

java - 如何重构创建 Intent 的重复代码?

python - 测试 Python 字符串中的 bool 表达式

r - 使用R和XML,XPath 1.0表达式可以消除返回的内容中的重复项吗?

java - java不同类别的假文件路径

java - 发送特定大小的数据时出现 BufferOverflowException

xml - 如何使用 XQuery 以 CSV 格式提取多个 xml 元素?

html - 使用 XSL 将 XML 值输出到 CSS 时出错

c++ - 支持在 boost spirit bool 表达式解析器中隐含的 AND 操作

java - 从多层ObjectNode中检索线结构