mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-01-11 21:10:32 +01:00
Loop through xml elements in handlebars template #529
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @rmeshksar on GitHub (Jul 18, 2023).
Originally assigned to: @StefH on GitHub.
I have a request with XML body. In the response template, I would like to loop through some of the elements of the request and add new elements to the response.
XPath.SelectNodes helpers returns a string and I cannot use {{#each method on it.
Wondering if there is any way to do it?
Maybe adding a new Handlebars helper?
@StefH commented on GitHub (Jul 19, 2023):
The
SelectNodesdoes always return a string, which is not very usable.I'll update https://github.com/Handlebars-Net/Handlebars.Net.Helpers to return a list which can be used in an
each.@StefH commented on GitHub (Jul 19, 2023):
https://github.com/Handlebars-Net/Handlebars.Net.Helpers/pull/80
@StefH commented on GitHub (Jul 19, 2023):
@rmeshksar
I've updated the https://github.com/Handlebars-Net/Handlebars.Net.Helpers
So for this XML:
And this C# code:
Returns this:
"0000083256\r\n0000083259\r\n"I think this is what you need?
Can you comment ?
@rmeshksar commented on GitHub (Jul 19, 2023):
This is exactly what I was looking for. Thanks for the quick response.
For now I did something by splitting the string and loop through that but I will use this much much better approach when it is released.
@rmeshksar commented on GitHub (Jul 19, 2023):
I also would like to ask another question here:
XPath.Evaluate returns an object and not string.
It is working fine if I use it directly in the template as ToString method returns the Value.
But I cannot use it with another string function like Uppercase.
What do you suggest?
@StefH commented on GitHub (Jul 19, 2023):
I can add a method
EvaluateToString?@rmeshksar commented on GitHub (Jul 19, 2023):
That would be great.
Evaluate can return an array. In fact I think what is returns is IEnumerable<XPathItem>.
@rmeshksar commented on GitHub (Jul 19, 2023):
Maybe also a ToString() helper is a good addition to the helpers.
@StefH commented on GitHub (Jul 19, 2023):
EvaluateToString has been added, see PR.
@StefH commented on GitHub (Jul 19, 2023):
In the next days I will create a new NuGet for Handlebars.Net.Helpers and I'll include this in WireMock.Net
@rmeshksar commented on GitHub (Jul 20, 2023):
This is amazing. Thanks
@StefH commented on GitHub (Jul 20, 2023):
https://github.com/WireMock-Net/WireMock.Net/pull/976