<Batch>
<results>
<columns>
<column index="0">Sample Batch ID</column>
<column index="1">Status</column>
<column index="2">GSA-48v4-0</column>
</columns>
<rows>
<row index="0">
<column index="0">102</column>
<column index="1">Completed</column>
<column index="2">GSA-48v4-0</column>
</row>
<row index="1">
<column index="0">102</column>
<column index="1">Active</column>
<column index="2">GSA-48v4-0</column>
</row>
</rows>
</results>
</Batch>
我有一个像这样的xml格式。如果第二列值为“Active”,我需要获取节点索引为 0 的列值。所以这里我需要获取 102。它应该返回列值为“Active”的所有节点的列表。
如有任何帮助,我们将不胜感激。
这实际上比看起来更难,所以我建议转换为 JSON 以使其更容易。
* json data = response
* def rows = data.Batch.results.rows.row.map(x => x._.column)
* def result = rows.find(x => x[1]._ == 'Active')
* assert result[0]._ == '102'
可能需要一些时间来适应 Karate 如何将 XML 转换为 JSON。上面的第二行重点关注您需要的数据。
find()
函数应用您提到的规则。
有关允许您执行此操作的 JS 函数的更多详细信息,请参阅:https://stackoverflow.com/a/76091034/143475