有没有办法使用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)
提前致谢.
XML中没有属性顺序.您显示的xml文件与完全相同的东西略有不同,任何看到它们之间差异的东西都不是(表现为)xml解析器.
老实说.正确的xml解析器看不到两者之间的任何差异.
可能有个别的xslt实现可以创建这种差异,我不知道.但一般来说,xslt只讨论xml,而不是关于xml的文本表示,并且因为在那个级别上没有区别,所以没有标准的xslt方法来实现你正在寻找的结果就不足为奇了.
当然,你可以做的是获取任何xml解析器/编写器并更改写入部分以按所需顺序发出属性.就个人而言,我会使用像ruby的rexml之类的东西,因为ruby允许在运行时重新定义方法而无需修改原始代码.