2016-09-21 70 views
0

我遇到了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

您可以使用last()功能在这里...

​​

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

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

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

+0

工作正常!非常感谢!我把[last()]放在错误的地方... –

+0

我修改了我的答案,尝试解释差异.... –