Skip to content

Commit 15dde05

Browse files
committed
parse sibling tags into map with single key and list
1 parent 82d8854 commit 15dde05

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

lib/soap/response/parser.ex

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,15 @@ defmodule Soap.Response.Parser do
5959
Enum.reduce(elements, &Map.merge/2)
6060

6161
Enum.all?(elements, &is_map/1) ->
62-
elements |> Enum.map(&Map.to_list/1) |> List.flatten()
62+
elements
63+
|> Enum.map(&Map.to_list/1)
64+
|> List.flatten()
65+
|> Enum.reduce(%{}, fn {k, v}, acc ->
66+
Map.update(acc, k, v, fn
67+
e when is_list(e) -> [v | e]
68+
e -> [v, e]
69+
end)
70+
end)
6371

6472
true ->
6573
extract_value_from_list(elements)

0 commit comments

Comments
 (0)