Okay, I understand this better now. One way to do this is how you are trying to approach this, which i am not sure how to implement.
Another simpler way maybe a little tough to implement is as follows:
You can take a high level call as to what would be the max number of "item" nodes would be present. Suppose you think, you would never have more than say 10, you would want to use groovy to read the number of "item" from excel, populate the nodes from the starting and delete the remaining nodes. The catch is, that every time you run the request or for every iteration, you would need to "reset" the request xml to 10 empty nodes. I did implement a similar solution in one of my projects using nothing but groovy. If you are interested in this approach, let me know and i might be able to share the code snippets.
Regards,
Deepesh Jain