【发布时间】:2014-07-19 16:04:26
【问题描述】:
我想知道如何在for-each 循环中添加多个值?这是有问题的代码:
<xsl:for-each select="all/courses/allcourses/course">
<course code="{c_code}">
<xsl:variable name="courseCreditPoints" select="coursecp" />
<xsl:variable name="numberOfEnrolled" select="count(student[sum(results/u_points)!= $courseCreditPoints])" />
<xsl:variable name="thisWontWork" select="$numberOfEnrolled + $numberOfEnrolled" />
<xsl:if test="position() < 5">
<xsl:value-of select="$thisWontWork" />
</xsl:if>
</course>
</xsl:for-each> <br />
XML:
<?xml version="1.0" encoding="UTF-8"?>
<all>
<courses>
<allcourses>
<course>
<c_code>U65</c_code>
<c_title>Computer Science</c_title>
<coursecp>360</coursecp>
<student>
<studentID>10265654</studentID>
<fname>Sarah</fname>
<lname>Clarke</lname>
<results>
<u_title>Communicating in an IT Environment</u_title>
<u_code>CSG1132</u_code>
<u_points>15</u_points>
<result>65</result>
</results>
<results>
<u_title>Programming Principles</u_title>
<u_code>CSP1150</u_code>
<u_points>15</u_points>
<result>45</result>
</results>
<results>
<u_title>Computer Fundamentals</u_title>
<u_code>ENS1161</u_code>
<u_points>15</u_points>
<result>55</result>
</results>
</student>
<student>
<studentID>10276768</studentID>
<fname>John</fname>
<lname>Smith</lname>
<results>
<u_title>Computer Fundamentals</u_title>
<u_code>ENS1161</u_code>
<u_points>15</u_points>
<result>85</result>
</results>
<results>
<u_title>Operating Systems</u_title>
<u_code>CSG1102</u_code>
<u_points>15</u_points>
<result>55</result>
</results>
<results>
<u_title>Computer Forensics</u_title>
<u_code>CSG2305</u_code>
<u_points>15</u_points>
<result>75</result>
</results>
</student>
</course>
<course>
<c_code>Y89</c_code>
<c_title>Bachelor of Science (Cyber Security)</c_title>
<coursecp>360</coursecp>
<student>
<studentID>10254548</studentID>
<fname>Jacob</fname>
<lname>Green</lname>
<results>
<u_title>Communicating in an IT Environment</u_title>
<u_code>CSG1132</u_code>
<u_points>15</u_points>
<result>77</result>
</results>
<results>
<u_title>Programming Principles</u_title>
<u_code>CSP1150</u_code>
<u_points>15</u_points>
<result>45</result>
</results>
<results>
<u_title>Computer Fundamentals</u_title>
<u_code>ENS1161</u_code>
<u_points>15</u_points>
<result>55</result>
</results>
<results>
<u_title>Systems Analysis</u_title>
<u_code>CSI1241</u_code>
<u_points>15</u_points>
<result> 87 </result>
</results>
</student>
<student>
<studentID>10254548</studentID>
<fname>Mason</fname>
<lname>Johnson</lname>
<results>
<u_title>Communicating in an IT Environment</u_title>
<u_code>CSG1132</u_code>
<u_points>15</u_points>
<result>55</result>
</results>
<results>
<u_title>Programming Principles</u_title>
<u_code>CSP1150</u_code>
<u_points>15</u_points>
<result>85</result>
</results>
<results>
<u_title>Computer Fundamentals</u_title>
<u_code>ENS1161</u_code>
<u_points>15</u_points>
<result>55</result>
</results>
<results>
<u_title>Systems Analysis</u_title>
<u_code>CSI1241</u_code>
<u_points>15</u_points>
<result> 65 </result>
</results>
</student>
<student>
<studentID>102534548</studentID>
<fname>Jack</fname>
<lname>Johnson</lname>
<results>
<u_title>Communicating in an IT Environment</u_title>
<u_code>CSG1132</u_code>
<u_points>15</u_points>
<result>55</result>
</results>
<results>
<u_title>Programming Principles</u_title>
<u_code>CSP1150</u_code>
<u_points>15</u_points>
<result>85</result>
</results>
<results>
<u_title>Computer Fundamentals</u_title>
<u_code>ENS1161</u_code>
<u_points>15</u_points>
<result>55</result>
</results>
<results>
<u_title>Systems Analysis</u_title>
<u_code>CSI1241</u_code>
<u_points>15</u_points>
<result> 65 </result>
</results>
</student>
</course>
</allcourses>
</courses>
</all>
我想要达到的目标: 所以基本上,如果我要输出 $numberOfEnrolled,我会得到 3 个值,2、3 和 0。我如何将这些加在一起?正如您在上面的代码中看到的那样,我尝试这样做,但最终失败了,而是输出 4、6 和 0。将这些单独的值加在一起的最佳方法是什么?
【问题讨论】:
-
请同时发布输入 XML。
标签: xml xslt xpath foreach sum