Как разделить с XSL - но способ, которым я пытаюсь сделать это немного сложно - PullRequest
1 голос
/ 23 мая 2011

Итак, я узнал, как складывать значения в XSL, следующая ссылка покажет вам, что я сделал, чтобы получить его.

Как использовать функцию count () для XSL - попыткапосчитать количество «А» в отчете

Но теперь я хочу выяснить, какой процент имеет каждое значение отчета.

Итак, я имею в виду, что есть 8всего отчетов, но «А» имеет только 4 из них, что означает, что «А» имеет% 50 от общих значений отчета.

А «В» имеет 3, что означает, что у него% 37,5 изитоговые значения отчета и т. д.

Как мне это сделать?

Я полагаю, что получаю номер каждого значения отчета, например, 'A', равный 4 - тогда мне нужно использоватьФункция count () для подсчета общего количества отчетов и деления «А» на общее значение.

Я заблудился, как это сделать.

Я знаю, что это дает общее количествочисло «А».

<xsl:value-of select="count(/class/student[grade='A'])"/> 

И это дает общее количество отчетов.

<xsl:value-of select="count(/class/student/grade)"/>

Но я не знаю, как получить первое значение и разделить егоко второй * 100. Я нашел способ дать каждому значению имя или идентификатор, чтобы я мог ссылаться на них - я полностью потерян.

1 Ответ

5 голосов
/ 23 мая 2011

Вы можете просто сделать деление на строку:

<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"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...