一个XML数据统计问题,期待大家的讨论

想不到2007年的第一个帖子是有关问题的,呵呵。这段时间运气不是很好,可能跟本命年有关(没有穿红内裤),幸好快过完了。

在教学的时候遇到了一个XML数据统计问题,试了很多方法,还是没有搞定。想与大家一起讨论讨论。

如下一个XML文档:

<?xml version="1.0" ?>
<SUMMARY>
<PRODUCT ID="P001" NAME="Mini Bus" PRICE="75">
 <ORDER ID="O001">
  <SHIP_ADD>10 NEWSLAND ESTATE, NY</SHIP_ADD>
  <QUANTITY>30</QUANTITY>
 </ORDER>
 <ORDER ID="O002">
  <SHIP_ADD>11 NEWSLAND ESTATE</SHIP_ADD>
  <QUANTITY>50</QUANTITY>
 </ORDER>
</PRODUCT>
<PRODUCT ID="P002" NAME="Barbie Doll" PRICE="20">
 <ORDER ID="O003">
  <SHIP_ADD>10 LIONS STREET, BOSTON </SHIP_ADD>
  <QUANTITY>10</QUANTITY>
 </ORDER>
</PRODUCT>
</SUMMARY>

现在我要对这个XML文档进行一个统计操作。通过把各个产品的订单质量之和sum(QUANTITY)乘以该产品的价格(属性PRICE)可以得到该产品的销售额(<xsl:value-of select="(sum(ORDER/QUANTITY)*@PRICE)"/>),但是我需要统计该公司所有产品的总销售额。也就是说对上面各个产品的销售额再做一个求和,没有想到好的办法,希望有朋友和我一起讨论这个问题。

为了给大家节约时间,我把已经写好的部分XSL贴上来,显示的结果中我希望出现一行显示6200=(75×(30+50)+20×10),也就是所有产品销售额的总计。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<center>
<table border="10">
<tr>
<td>
Product and Order Details
</td>
</tr>
</table>
</center>


<xsl:for-each select="SUMMARY/PRODUCT">
Product ID:<xsl:value-of select="@ID"/><br/>
Product Name:<xsl:value-of select="@NAME"/><br/>
Product Price:<xsl:value-of select="@PRICE"/><br/>
<br/>

<xsl:for-each select="ORDER">
Order ID:<xsl:value-of select="@ID"/><br/>
Order Address:<xsl:value-of select="SHIP_ADD"/><br/>
Order Quantity:<xsl:value-of select="QUANTITY"/><br/>
Order Money:<xsl:value-of select="(QUANTITY*../@PRICE)"/><br/>
<hr color="green"/>
</xsl:for-each>


<br/>
Product Sales Value:
<xsl:value-of select="(sum(ORDER/QUANTITY)*@PRICE)"/>
<br/>
<hr color="red" size="5"/>
</xsl:for-each>


</xsl:template>
</xsl:stylesheet>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值