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/

相关文章:

xml - 使用 xpath 从 tomcat 的 server.xml 中删除注释部分

java - 使用 DateTimeFormatterBuilder 解析缺失日期的日期,默认为月底

java - 如何评估通过链表或数组列表实现的二叉树的性能?

c# - 将具有可变属性的 JSON 对象解析为强类型对象

c++ - Boost Spirit x3条件(三元)运算符解析器

Python:通用 XPATH 上的 Selenium、NoSuchElementException

java - 在 JavaScript 中创建本地值的方法

java - 如何在 Ubuntu Linux 上安装 JDK

parsing - 如何用多个文件编译yacc/Bison ?

python-3.x - 用于选择多个条件的 Python 和 Selenium xpath