是否有一种可行的方法允许按属性计数排序元素?我主要关心的是表现。
我想按最高到最低的属性数量排序元素。
e.g。 XML文档
<!-- 1 -->
<element attr1="" attr2="">
<param name="" value=""/>
<param name="" value=""/>
<param name="" value=""/>
<param name="" value=""/>
</element>
<!-- 2 -->
<element attr1="" attr2="" attr3"">
<param name="" value=""/>
<param name="" value=""/>
<param name="" value=""/>
<param name="" value=""/>
</element>
<!-- 3 -->
<element attr1="">
<param name="" value=""/>
<param name="" value=""/>
<param name="" value=""/>
<param name="" value=""/>
</element>
在这种情况下,正确的顺序是2,1,3
答案 0 :(得分:2)
与大多数XML转换一样,这项工作的最佳工具是XSLT。以下是XSLT 2.0,但在1.0
中几乎一样容易<xsl:template match="/*">
<xsl:perform-sort select="element">
<xsl:sort select="count(@*)" order="descending"/>
</xsl:perform-sort>
</xsl:template>