我需要遍历XML,并且只传递3个元素,在下一次迭代中,从4到16中选择下3个,依此类推。
我正在脚本外部控制计数器的值。
我写了下面的代码,但是它不能按预期工作。
<employees>
<details>
<id>1</id>
</details>
<details>
<id>2</id>
</details>
<details>
<id>3</id>
</details>
<details>
<id>4</id>
</details>
<details>
<id>5</id>
</details>
<details>
<id>6</id>
</details>
<details>
<id>7</id>
</details>
<details>
<id>8</id>
</details>
</employees>
def doc = new XmlSlurper().parseText(body);
int count = doc.details.size();
def query = "\$filter=FSE_ID eq '";
int counter = 1; // this value will come from outside the script.
int counterLimt = counter + 2;
int i= counter;
for (i = counter; i <= counterLimt; i++) {
doc.details[i].CEE_ID.each{
if(i==counterLimt){
query = query+it+"'";
}
else{
query = query+it+"' or FSE_ID eq '";
i++;
}
}
}
预期输出是
首次运行
$ filter = FSE_ID eq'1'或FSE_ID eq'2'或FSE_ID eq'3'
下次运行
$ filter = FSE_ID eq'4'或FSE_ID eq'5'或FSE_ID eq'6'
.each似乎存在一些问题,并且按我的想法无法正常工作。
请帮助。
谢谢 亚坦
答案 0 :(得分:0)
我快到了。
通过删除i ++;从.each循环内部开始工作。