0

groovy スクリプトを使用して、以下の xml ファイルから値 3 を取得する必要があります。SOAPUI からテストしています

 <ParamId>3</ParamId>

値を取得するための構文を教えてください。次のコードを試しました。しかし、私は 3 番目の 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>
4

2 に答える 2

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。ここではXmlTokenSourcefromを想定しましたXmlBeans


これは SoapUI で機能するはずですXmlHolder:

def root = new XmlSlurper().parseText(response.getXml())
于 2012-08-24T09:01:34.667 に答える
2

GroovyのドキュメントページでXmlParserまたはXmlSlurperの例を確認してください

于 2012-08-24T08:51:02.240 に答える