Сортировка атрибутов в каждом узле в XML

У меня есть такой XML

 <root>
    <aree fbc="123" ad="12" b="123"/>
    <beee c="12" a="144"/>
</root>

Необходимо отсортировать имена атрибутов по алфавиту. Как это:

 <root>
    <aree ad="12" b="123" fbc="123"/>
    <beee  a="144" c="12"/>
</root>

У меня есть код xQuery, но он работает неправильно. Помогите с этим пожалуйста. Мне нужно заменить на настоящее имя узла

select @data.query('<root>{for $i in root/* return <aaa> {for $j in $i/@* order by local-name($j) return  $j} </aaa> }</root>')

person Ivan    schedule 23.05.2017    source источник
comment
Действительно? Порядок атрибутов важен?   -  person Backs    schedule 23.05.2017
comment
@Backs: Действительно, порядок атрибутов XML не важен.   -  person kjhughes    schedule 23.05.2017
comment
@kjhughes я знаю :)   -  person Backs    schedule 23.05.2017
comment
@Backs: Я знаю, что ты знаешь. :) Теперь осталось убедить Ивана.   -  person kjhughes    schedule 23.05.2017
comment
Можно упорядочить атрибуты в алфавитном порядке, но это не будет сохранено, если вы не сохраните результат в виде строки (вы не должны). Что бы вы здесь ни делали, нет никакой гарантии, что в следующий раз атрибуты будут в том же порядке. В большинстве случаев это делается для того, чтобы XML-документы можно было сравнивать на уровне строк, или для создания хэша для проверки манипуляций. Помимо порядка атрибутов, также нет гарантии относительно незначащих пробелов. Прочитайте об ограничениях здесь   -  person Shnugo    schedule 23.05.2017


Ответы (1)