2
我有后续节点ContractLength XML,它有4倍可能的值:定制的xsl:排序 - XSLT V1
无,1年,2年,3年
我想知道是否有可能他们在他们上面显示的顺序排序...
<xsl:sort select="ContractLength" order="ascending" data-type="text"/>
给了我1年,2年,3年,无
<xsl:sort select="ContractLength" order="ascending" data-type="text"/>
给我无,3年,2年,1年
,但我想没有被视为0导致无,1年,2年,3年
我只能使用XSLT V1。 0
排序XSL目前适合这样的代码:
<xsl:choose>
<xsl:when test="$sort = 'greenpower'">
<xsl:apply-templates select="Product">
<xsl:sort select="GreenPercent" order="descending" data-type="number" />
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$sort = 'estimatedcost'">
<xsl:apply-templates select="Product">
<xsl:sort select="EstimatedCost/Maximum" order="ascending" data-type="number" />
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$sort = 'contractterm'">
<xsl:apply-templates select="Product">
<xsl:sort select="ContractLength" order="ascending" data-type="text"/>
</xsl:apply-templates>
</xsl:when>
</xsl:choose>
请参阅此链接:http://stackoverflow.com/questions/7795474/can-you-define-a-custom-collation-using-a-function-in-xslt。第二个答案是XSLT 1.0解决方案。 –