考虑元素属性值的java使用xslt重新排列xml
我有以下xml:
<Users>
<User id="2" name="ABC" Division="HR"/>
<User id="3" name="xyz" Division="Admin"/>
<User id="4" name="LMN" Division="Payroll"/>
<User id="5" name="PQR" Division="IT"/>
</Users>
我想使用XSLT转换它,如下所示:
<Users>
<User id="5" name="PQR" Division="IT"/>
<User id="3" name="xyz" Division="Admin"/>
<User id="2" name="ABC" Division="HR"/>
<User id="4" name="LMN" Division="Payroll"/>
</Users>
我是根据除法属性值来做的,没有具体的规则。 这只是一个样本。 这不是排序,而是一种模板。我可以为用户定义自己的顺序并使用xslt进行转换吗
提前谢谢
# 1 楼答案
XSLT中有很多方法可以重新排列节点,从简单的字母或数字排序,到复杂的分组。如果可以将XSLT 2.0或XSLT 1.0与扩展一起使用,通常可以在模板、循环和函数中使用
<xsl:sort>
。如果仅限于XSLT 1.0,则可以在模板或节点集上的循环中进行基本排序,但必须编写更复杂的分组算法(例如:Muenchian方法)使用你的简单示例,我想到了一些重新排列节点的方法。用下面的样式表处理你的例子,你会看到一些例子