当其中一个学生中不存在一个字段时,我一直在寻找计算总数的方法。当我总结充电器时,我一直在拿NaN。当其中一项指控仅存在于一名学生中时,我如何对充电器求和。只有学生2有活动充电器,但第一个没有。
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="students.xslt"?>
<students>
<student id="001234" type="grad">
<lastname>Jones</lastname>
<firstname>Alan</firstname>
<gpa>3.51</gpa>
<chargers>
<tuition>1200</tuition>
<parking>35.20</parking>
<health>18.20</health>
</chargers>
</student>
<student id="001887" type="undergrad">
<lastname>Chong</lastname>
<firstname>Susan</firstname>
<gpa>2.51</gpa>
<chargers>
<tuition>1645</tuition>
<activity>50.20</activity>
<parking>35.20</parking>
<health>22.50</health>
</chargers>
</student>
</students>
这就是我试图计算总数的方法。
<xsl:value-of select="sum(//chargers) "/>
什么是最好的方法?
是否需要进行xsl:if
测试?
<xsl:template match="chargers">
<table>
<tr>
<b>Chargers:</b>
</tr>
<tr>
<td>Tuition:</td>
<td>
<xsl:value-of select="tuition"/>
</td>
</tr>
<xsl:if test="self::node()[activity]">
<tr>
<td>Activity:</td>
<td>
<xsl:value-of select="activity"/>
</td>
</tr>
</xsl:if>
<tr>
<td>Parking:</td>
<td>
<xsl:value-of select="parking"/>
</td>
</tr>
<tr>
<td>health:</td>
<td>
<xsl:value-of select="health"/>
</td>
</tr>
<tr>
<td colspan="2">Total Chargers:</td>
<td>
<xsl:value-of select="sum(//chargers) "/>
</td>
</tr>
</table>
</xsl:template>
答案 0 :(得分:0)
第一个问题是$(function(){
$('#create_reservation_form').group(function(){
$('#type').change(function(e){
// do stuff...
});
$('#brand').change(function(e){
// do stuff...
});
$('#category').change(function(e){
// do stuff...
});
});
});
可能会丢失,而是在您应该选择activity
的孩子时选择chargers
元素元件。
更改
chargers
到
<xsl:value-of select="sum(//chargers) "/>
选择文档中所有 <xsl:value-of select="sum(//chargers/*) "/>
元素的子元素。
第二个问题是,您可能不希望在文档中所有chargers
元素中的所有chargers
个孩子之间求和。相反,您可能希望将chargers
元素子项与您匹配的特定charger
元素相加。
如果是,则更改
chargers
到
<xsl:value-of select="sum(//chargers/*) "/>
模板中的与 <xsl:value-of select="sum(*) "/>
匹配。