有没有办法使用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>
转型后,我希望它喜欢:
<?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>
提前致谢。
答案 0 :(得分:5)
XML中没有属性顺序。您显示的xml文件与完全相同的东西略有不同,任何看到它们之间差异的东西都不是(表现为)xml解析器。
诚实。正确的xml解析器看不到两者之间的任何差异。
可能有个别的xslt实现可以创建这种差异,我不知道。但一般来说,xslt只讨论xml,而不是关于xml的文本表示,并且因为在那个级别上没有区别,所以没有标准的xslt方法来实现你正在寻找的结果就不足为奇了。
当然,你可以做的是采取任何xml解析器/编写器并更改写入部分以按所需顺序发出属性。就个人而言,我会使用类似ruby的rexml,因为ruby允许在运行时重新定义方法而不修改原始代码。
答案 1 :(得分:0)
我认为你的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>
然后你可以按照自己的意愿重新排序。 Here您会找到大量信息和样本。