Не знаю, на какую реализацию вы ссылаетесь, но я бы поспорил, что дерево внутренне организовано / представлено в виде хэш-карты (element -> node
) или какой-либо другой аналогичной не сохраняющей порядок структуры данных.
Выполнение этого, очевидно, облегчает поиск в стиле XPath ценой, как вы заметили, сохранения порядка элементов / атрибутов. Я уверен, что используемая вами XML-библиотека предоставляет настройки для настройки (или отключения) такого поведения, но без дополнительных подробностей все это предположение.