Below is the Input XML and I am looking for the desired output -
<xml>
<a>
<element0>987</element0>
</a>
<a>
<a_list_one>
<a_lag_one>
<element1>123</element1>
<element2>456</element2>
</a_lag_one>
</a_list_one>
<a_list_one>
<a_lag_one>
<element1>789</element1>
<element2>678</element2>
</a_lag_one>
</a_list_one>
<a_list_two>
<a_lag_two>
<a_list_three>
<a_lag_three>
<element3>570</element3>
<element4>678</element4>
</a_lag_three>
</a_list_three>
<a_list_three>
<a_lag_three>
<element3>989</element3>
<element4>231</element4>
</a_lag_three>
</a_list_three>
</a_lag_two>
<a_lag_two>
<a_list_three>
<a_lag_three>
<element3>570</element3>
<element4>678</element4>
</a_lag_three>
</a_list_three>
<a_list_three>
<a_lag_three>
<element3>9873</element3>
<element4>278</element4>
</a_lag_three>
</a_list_three>
<a_list_four>
<a_lag_four>
<element5>9121</element5>
<element6>9879</element6>
</a_lag_four>
</a_list_four>
<a_list_three>
<a_lag_four>
<element5>098</element5>
<element6>231</element6>
</a_lag_four>
</a_list_three>
</a_lag_two>
</a_list_two>
<a_list_four>
<a_lag_four>
<element5>654</element5>
<element6>7665</element6>
</a_lag_four>
</a_list_four>
</a>
<b>
<b_list_one>
<b_lag_one>
<element8>123</element8>
<element9>456</element9>
</b_lag_one>
</b_list_one>
</b>
<b>
<b_list_one>
<b_lag_one>
<element8>789</element8>
<element9>678</element9>
</b_lag_one>
</b_list_one>
</b>
</xml>
Desired XML is:
<xml>
<a>
<element0>987</element0>
<a_list_one>
<a_lag_one>
<element1>123</element1>
<element2>456</element2>
</a_lag_one>
<a_lag_one>
<element1>789</element1>
<element2>678</element2>
</a_lag_one>
</a_list_one>
<a_list_two>
<a_lag_two>
<a_list_three>
<a_lag_three>
<element3>570</element3>
<element4>678</element4>
</a_lag_three>
<a_lag_three>
<element3>989</element3>
<element4>231</element4>
</a_lag_three>
</a_list_three>
</a_lag_two>
<a_lag_two>
<a_list_three>
<a_lag_three>
<element3>570</element3>
<element4>678</element4>
</a_lag_three>
<a_lag_three>
<element3>9873</element3>
<element4>278</element4>
</a_lag_three>
<a_lag_four>
<element5>098</element5>
<element6>231</element6>
</a_lag_four>
</a_list_three>
<a_list_four>
<a_lag_four>
<element5>9121</element5>
<element6>9879</element6>
</a_lag_four>
</a_list_four>
</a_lag_two>
</a_list_two>
<a_list_four>
<a_lag_four>
<element5>654</element5>
<element6>7665</element6>
</a_lag_four>
</a_list_four>
</a>
<b>
<b_list_one>
<b_lag_one>
<element8>123</element8>
<element9>456</element9>
</b_lag_one>
<b_lag_one>
<element8>789</element8>
<element9>678</element9>
</b_lag_one>
</b_list_one>
</b>
</xml>
I am looking for XSL which does the conversion to the desired output. Here, the nodes which share the same name and also contains "_LIST" should be merged together. However, this logic should happen only within the first "_LIST" node and should not apply to inner nodes. Secondly, at the root level also, the nodes to be merged. For example here, there should be only one "a" tag and "b" tag. Kindly help.