对数据进行排序并仅将前三个结果存储在变量中:XSLT

时间:2013-05-03 09:11:47

标签: xml sorting xslt

我有一个XML文件说

<Nodes>
     <node>12</node>
     <node>244</node>
     <node>234</node>
     <node>45</node>
     <node>7</node>
     <node>112</node>
     <node>64</node>
     <node>3</node>
</Nodes>

我想要的是,按照降序排列数据,并将前3个结果存储到变量中。

使用<xsl:sort>对数据进行排序,但如何将前3个结果存储在变量中,以及如何访问此变量?

我想显示前三个项目的数据。 即。

  Value1=244
  Value2=234
  Value3=112

请询问是否需要更多信息。

1 个答案:

答案 0 :(得分:1)

您可以使用position()功能:

<xsl:for-each select="Nodes/node">
  <xsl:sort select="."/>
  <xsl:if test="position() &lt; 4">
      ...
      Value<xsl:value-of select="position() + 1"/>=<xsl:value-of select="."/>
      ...
  <xsl:if>
</xsl:for-each>