用XSL选择最后一项

时间:2013-12-09 23:19:30

标签: xslt

我正在尝试编辑使用下面的代码块列出订单中所有货件的外发电子邮件。但是,它会选择所有货件,我们只需要最后一批。有任何想法吗?我对xsl一无所知所以这对我来说都是陌生的。

<xsl:variable name="order" select="//Order[1]" />
<xsl:variable name="address" select="$order/Address[@type='bill']" />
<xsl:value-of select="$address/FirstName" />

<p>Thank you for your order # <xsl:value-of select="$order/Number" />.
Your tracking information is available:
</p>

<p>
<xsl:if test="count($order//Shipment[IsProcessed = 'true' and (not(.//Voided) or .//Voided != 'true')]) = 0">
<i>(No shipments)</i>
</xsl:if>

<xsl:for-each select="$order//Shipment[IsProcessed = 'true' and (not(.//Voided) or .//Voided != 'true') ]">

      Shipped on <b><xsl:value-of select="sw:ToShortDate(ShippedDate)" /></b>
      using <b><xsl:value-of select="ServiceUsed" /></b>: <b><xsl:call-template name="outputTrackingLink" /></b>
     <br></br>
   </xsl:for-each>
</p>

1 个答案:

答案 0 :(得分:0)

添加

<xsl:if test="position() = last()">
  Shipped ...
</xsl:if>

在可打印部分周围。只打印最后一项。