所以我发现了如何在XSL中添加值,以下链接将向您展示我为此做了什么。
How to use the count() function is XSL - trying to count the amount of "A"s there are in a report
但现在我想找出每个报告值的百分比。
所以,我的意思是,总共有8个报告,但是'A'只有4个,所以这意味着'A'占报告总值的50%。
'B'有3,所以这意味着它占报告总值的%37.5,等等。
我该怎么做?
我想我得到每个报告值的数字,比如'A'是4 - 那么我需要使用count()函数来计算报告的总数,并将'A'除以总值。
我迷失了如何完成这项工作。
我知道这会得到'A'的总数。
<xsl:value-of select="count(/class/student[grade='A'])"/>
这会得到报告的总数。
<xsl:value-of select="count(/class/student/grade)"/>
但我不知道如何获得第一个值并将其除以第二个* 100.我想找到一种方法来为每个值赋予一个名称或ID,以便我可以引用它们 - 我完全迷失了。
答案 0 :(得分:5)
你可以直接进行分工:
<xsl:value-of select="count(/class/student[grade='A']) div count(/class/student/grade)"/>
但是,这有点乱。你可以像这样整理一下:
<xsl:variable name="students" select="/class/student"/>
<xsl:variable name="gradeAStudents" select="$students[grade='A']"/>
<xsl:variable name="gradeBStudents" select="$students[grade='B']"/>
<!-- etc -->
<xsl:variable name="proportionGradeA" select="count($gradeAStudents) div count($students)"/>
<xsl:variable name="proportionGradeB" select="count($gradeBStudents) div count($students)"/>
<!-- etc -->
<!-- then you can use this somewhere else to display the result -->
<xsl:value-of select="$proportionGradeA"/>