XSLT:使用XSLT重新排序XML中的属性

Ian*_*the 1 xml xslt

有没有办法使用XSLT重新排序XML中的属性?

例如,我有一个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>
Run Code Online (Sandbox Code Playgroud)

转型后,我希望它喜欢:

<?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>
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Chr*_*zig 5

XML中没有属性顺序.您显示的xml文件与完全相同的东西略有不同,任何看到它们之间差异的东西都不是(表现为)xml解析器.

老实说.正确的xml解析器看不到两者之间的任何差异.

可能有个别的xslt实现可以创建这种差异,我不知道.但一般来说,xslt只讨论xml,而不是关于xml的文本表示,并且因为在那个级别上没有区别,所以没有标准的xslt方法来实现你正在寻找的结果就不足为奇了.

当然,你可以做的是获取任何xml解析器/编写器并更改写入部分以按所需顺序发出属性.就个人而言,我会使用像ruby的rexml之类的东西,因为ruby允许在运行时重新定义方法而无需修改原始代码.