无法使用Groovy脚本从JDBC响应中拾取数据

无法使用Groovy脚本从JDBC响应中拾取数据,jdbc,groovy,soapui,Jdbc,Groovy,Soapui,我有以下从JDBC响应步骤生成的XML: <ResultSet fetchSize="64"> <Row rowNumber="1"> <TW341_LIMITDEFN.LIMIT_CODE>022</TW341_LIMITDEFN.LIMIT_CODE> <TW341_LIMITDEFN.LIMIT_TYPE>N</TW341_LIMITDEFN.LIMIT_TYPE>

我有以下从JDBC响应步骤生成的XML:

<ResultSet fetchSize="64">
    <Row rowNumber="1">
        <TW341_LIMITDEFN.LIMIT_CODE>022</TW341_LIMITDEFN.LIMIT_CODE>
        <TW341_LIMITDEFN.LIMIT_TYPE>N</TW341_LIMITDEFN.LIMIT_TYPE>
        <TW341_LIMITDEFN.PERIOD_VAL>1</TW341_LIMITDEFN.PERIOD_VAL>
        <TW341_LIMITDEFN.PERIOD_TYPE>C</TW341_LIMITDEFN.PERIOD_TYPE>
    </Row>
    <Row rowNumber="2">
        <TW341_LIMITDEFN.LIMIT_CODE>023</TW341_LIMITDEFN.LIMIT_CODE>
        <TW341_LIMITDEFN.LIMIT_TYPE>N</TW341_LIMITDEFN.LIMIT_TYPE>
        <TW341_LIMITDEFN.PERIOD_VAL>3</TW341_LIMITDEFN.PERIOD_VAL>
        <TW341_LIMITDEFN.PERIOD_TYPE>R</TW341_LIMITDEFN.PERIOD_TYPE>
    </Row>
    <Row rowNumber="3">
        <TW341_LIMITDEFN.LIMIT_CODE>030</TW341_LIMITDEFN.LIMIT_CODE>
        <TW341_LIMITDEFN.LIMIT_TYPE>N</TW341_LIMITDEFN.LIMIT_TYPE>
        <TW341_LIMITDEFN.PERIOD_VAL>1</TW341_LIMITDEFN.PERIOD_VAL>
        <TW341_LIMITDEFN.PERIOD_TYPE>C</TW341_LIMITDEFN.PERIOD_TYPE>
    </Row>
但JDBC响应中的值没有到达“预期”如下所示:

Thu Oct 12 10:51:05 WST 2017:INFO:
[{LimitCode=, LimitType=, LimitPeriod=, LimitPeriodType=}, 
{LimitCode=, LimitType=, LimitPeriod=, LimitPeriodType=}, 
{LimitCode=, LimitType=, LimitPeriod=, LimitPeriodType=},]
我可以看到“xml”的发展过程如下:

2017年10月12日星期四10:55:19 WST:信息:022N1C023N3R030N1C033N5R043N3R093N1C601S1C


你知道为什么我不能将这些值从JDBC响应XML分配到数据映射值中吗?

这是因为元素名有
。因此,需要将元素名称放在单引号(')之间,如下所示:

def expected = xml.'**'.findAll{it.name() == 'Row'}.collect{ [
              LimitCode       : it.'TW341_LIMITDEFN.LIMIT_CODE'.text(),
              LimitType       : it.'TW341_LIMITDEFN.LIMIT_TYPE'.text(),
              LimitPeriod     : it.'TW341_LIMITDEFN.PERIOD_VAL'.text(),
              LimitPeriodType : it.'TW341_LIMITDEFN.PERIOD_TYPE'.text()
             ]
          }.sort {it.LimitCode}

这是因为元素名具有
。因此,需要将元素名称放在单引号(')之间,如下所示:

def expected = xml.'**'.findAll{it.name() == 'Row'}.collect{ [
              LimitCode       : it.'TW341_LIMITDEFN.LIMIT_CODE'.text(),
              LimitType       : it.'TW341_LIMITDEFN.LIMIT_TYPE'.text(),
              LimitPeriod     : it.'TW341_LIMITDEFN.PERIOD_VAL'.text(),
              LimitPeriodType : it.'TW341_LIMITDEFN.PERIOD_TYPE'.text()
             ]
          }.sort {it.LimitCode}

马特,请检查解决方案,看看是否有帮助。马特,请检查解决方案,看看是否有帮助。再次感谢Rao。错过一件小事,但一切都那么重要!再次感谢拉奥。错过一件小事,但一切都那么重要!