打印出最后一笔金额

时间:2016-09-21 12:23:16

标签: xml xslt

我遇到了xml和xsl的问题。这就是我的任务:

<InvoiceList>
   <Invoice>
      <ItemId>111-111</ItemId>
      <InvoiceAmount>6160</InvoiceAmount>
   </Invoice>
   <Invoice>
      <ItemId>222-222</ItemId>
      <InvoiceAmount>4840</InvoiceAmount>
   </Invoice>
</InvoiceList>

当我在xsl:

中使用此实例时
<xsl:value-of select="format-number(//Task/InvoiceList/Invoice[ItemId]/InvoiceAmount, '###,###.00')"/>

在打印输出中我得到6,160.00但我想打印出第二笔金额4840

知道怎么做吗?

谢谢!

此致 卓然

1 个答案:

答案 0 :(得分:1)

您可以在此处使用last()功能...

<xsl:value-of 
     select="format-number((//Task/InvoiceList/Invoice[ItemId]/InvoiceAmount)[last()], '###,###.00')"/>

注意,如果你这样做(注意缺少括号)......

<xsl:value-of 
     select="format-number(//Task/InvoiceList/Invoice[ItemId]/InvoiceAmount[last()], '###,###.00')"/>

然后对于文档中的每个Invoice项,它将在每个这样的元素下找到最后一个子InvoiceAmount。 (请注意,在XSLT 1.0中,当您选择多个节点时,format-number函数将只打印第一个节点。如果您在XSLT 2.0中尝试相同,则会出错。)