我有一份要求创建订单的家庭作业。订单表格应该包含可供用户购买的商品列表,这些商品来自XML文档,并使用XSL文件设置样式。
我完成了这一部分,并使用JavaScript将XSL加载到HTML DOM中。现在我不知道如何弄清楚我将如何处理数据。我需要乘以数量(由用户输入)和价格(从XML输入)。
我完全陷入困境,非常感谢任何有关从何处出发的提示。
我的XSLT:
<table width="0" border="1" cellspacing="3" cellpadding="5">
<tr>
<td>Qty</td>
<td>Item Description</td>
<td>Price</td>
</tr>
<xsl:for-each select="//item">
<tr>
<td><input name="top" type="text" onchange="calculate()" value="0" size="4" /></td>
<td>Item <xsl:value-of select="id"/></td>
<td><xsl:value-of select="price"/></td>
</tr>
</xsl:for-each>
</table>
一些XML:
<productcatalog>
<item>
<id>001</id>
<name>Item #1</name>
<price>10</price>
</item>
<item>
<id>002</id>
<name>Item #2</name>
<price>20</price>
</item>
<item>
<id>003</id>
<name>Item #3</name>
<price>30</price>
</item>
<item>
<id>004</id>
<name>Item #4</name>
<price>40</price>
</item>
</productcatalog>
答案 0 :(得分:1)
由于数量来自用户,因此您无法使用XSL实现此操作。您的XSL样式表应该输出一个执行计算的脚本。
如果你可以使用javascript库(例如jQuery),这个任务就相当简单了,但如果没有它,你肯定可以做到这一点。
您的计算功能应该:
存储价格可能是个问题。新方法(使用HTML5开始)是使用带有data-
前缀的属性。您可以将data-price
添加到html输出中作为获取价格的便利位置。您甚至可以将它放在输入节点本身上,这样您就不必导航节点来查找价格。