我遇到了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
知道怎么做吗?
谢谢!
此致 卓然
答案 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中尝试相同,则会出错。)