如何按属性数量排序DOM XML元素?

时间:2017-11-02 22:53:41

标签: java xml xml-parsing domparser

是否有一种可行的方法允许按属性计数排序元素?我主要关心的是表现。

我想按最高到最低的属性数量排序元素。

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

1 个答案:

答案 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>