XSLT: изменить порядок атрибутов в XML с помощью XSLT - PullRequest
1 голос
/ 06 мая 2011

Есть ли способ переупорядочения атрибутов в XML с использованием XSLT?

Например, у меня есть XML как

<?xml version="1.0" encoding="UTF-8"?>
 <books>
    <book author="Anonymous" qty="10" price="100" title="Basic XML"/>
    <book author="Anonymous" qty="20" price="200" title="Basic XLST"/>
 </books>

После преобразования, я ожидаю, что он будет похож:

<?xml version="1.0" encoding="UTF-8"?>
 <books>
    <book title="Basic XML" author="Anonymous" price="100" qty="10"/>
    <book title="Basic XLST" author="Anonymous" price="200" qty="20"/>
 </books>

Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 06 мая 2011

Нет порядка атрибутов в XML.XML-файлы, которые вы показали, представляют собой немного разные представления об одной и той же вещи, и все, что видит разницу между ними, не является (ведет себя как) xml-анализатором.

Честно говоря.Правильный синтаксический анализатор xml не видит никакой разницы между ними.

Могут быть отдельные реализации xslt, которые могут создать эту разницу, я не знаю.Но в целом xslt говорит только о xml, а не о текстовом представлении этого xml, и, поскольку на этом уровне нет никакой разницы, неудивительно, что не существует стандартного xslt способа достижения результата, который вы ищете.

Что вы можете сделать, конечно, это взять любой синтаксический анализатор / писатель xml и изменить часть записи для выдачи атрибутов в нужном вам порядке.Лично я бы использовал что-то вроде rexml ruby, просто потому, что ruby ​​позволяет переопределять методы во время выполнения и без изменения исходного кода.

0 голосов
/ 06 мая 2011

Я думаю, что ваш xml должен выглядеть примерно так:

<books>
    <book>
        <author>Anonymous</author>
        <qty>10</qty>
        <price>100</price>
        <title>Basic XML</title>
    </book>
    <book>
        <author>Anonymous</author>
        <qty>20</qty>
        <price>200</price>
        <title>Basic XsLt</title>
    </book>
</books>

И тогда вы можете изменить порядок, как пожелаете. Здесь вы найдете множество информации и образцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...