使用下面的 XML 代码:
def 肥皂响应 = "
<Results>
<ResultSet fetchSize="10">
<Row rowNumber="1">
<ID_ORDER>144107</ID_ORDER>
<CH_LNAME>TESTING</CH_LNAME>
<CH_FNAME>QA</CH_FNAME>
</Row>
<Row rowNumber="2">
<ID_ORDER>144108</ID_ORDER>
<CH_LNAME>TESTING</CH_LNAME>
<CH_FNAME>QA</CH_FNAME>
</Row>
</ResultSet>
</Results>
"
def inputXML = new XmlParser().parseText(soapResponse)
我想使用 GPath 来获取第一行(Row rowNumber="1")下 ID_ORDER 的值。
这有效,以下变量填充了 144107:
def id_order = inputXML.ResultSet.Row[0].ID_ORDER
但是,我需要能够从 excel 表中构造该 GPath。但是当我使用 ResultSet/Row[0]/ID_ORDER 填充 Excel 单元格并将上述行作为变量执行时:
def excelVariable = //getting "ResultSet/Row[0]/ID_ORDER" from sheet
def excelVariableArray = excelVariable.split('/') //create array of it, separated by "/"
def id_order = inputXML."${excelVariableArray[0]}"."${excelVariableArray[1]}"."${excelVariableArray[2]}".text() //traverse through XML, get value of "ID_ORDER" under 1st "Row"element
这里没有填充 id_order。期望它将填充 144107。如果我将索引“[0]”从行 [0] 中取出,那么它会成功地从 XML 中获取所有 ID_ORDER 值。但是因为我只想要第一个,所以我使用索引 0 但它不起作用 - 值是空的。
希望有人能对此提出解决方案。