Java 如何按属性数对DOM XML元素进行排序?
是否有一种可行的方法允许按属性计数对元素排序?我主要关心的是性能 我想按从高到低的属性数对元素进行排序 e、 g.XML文档Java 如何按属性数对DOM XML元素进行排序?,java,xml,xml-parsing,domparser,Java,Xml,Xml Parsing,Domparser,是否有一种可行的方法允许按属性计数对元素排序?我主要关心的是性能 我想按从高到低的属性数对元素进行排序 e、 g.XML文档 <!-- 1 --> <element attr1="" attr2=""> <param name="" value=""/> <param name="" value=""/> <param name="" value=""/> <param name="" value=
<!-- 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,与大多数XML转换一样,用于此工作的最佳工具是XSLT。以下是XSLT2.0,但在1.0中几乎同样简单
<xsl:template match="/*">
<xsl:perform-sort select="element">
<xsl:sort select="count(@*)" order="descending"/>
</xsl:perform-sort>
</xsl:template>
与大多数XML转换一样,完成这项工作的最佳工具是XSLT。以下是XSLT2.0,但在1.0中几乎同样简单
<xsl:template match="/*">
<xsl:perform-sort select="element">
<xsl:sort select="count(@*)" order="descending"/>
</xsl:perform-sort>
</xsl:template>