Список может быть сохранен при наличии столбца, содержат смещение (индексное положение списка) - вставка в середине тогда увеличивает все выше нового родителя и затем делает вставку.
Вам нужно поместить последним ( )
индексация результата nodelist, а не как часть критерия выбора. Попробуйте
(//element[@name='D'])[last()]