Я пытаюсь напечатать среднее значение с xslt и с трудом пытаюсь выяснить способ. У меня есть ответы в отдельном узле и вопросы в отдельном узле. Нужно, чтобы соответствовать вопрос идентификатор с ответом и вычислить среднееРассчитать среднее значение с xslt
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<details>
<detail>
<answersall>
<answers>
<question id="1"/>
<answer>4</answer>
<note>test</note>
</answers>
<answers>
<question id="2"/>
<answer>2</answer>
</answers>
<answers>
<question id="3"/>
<answer>2</answer>
</answers>
<answers>
<question id="4"/>
<answer>3</answer>
</answers>
</answerall>
</detail>
<questions>
<question id="1" text="Hello how are you" section="a"/>
<question id="2" text="how was your day" section="a"/>
<question id="3" text="it was good" section="b"/>
<question id="4" text="take care" section="b"/>
</questions>
</details>
Я пытаюсь напечатать что-то вроде этого
Question Answer
Section A 3 (average)
1. Hello how are you 4
2.How was your day 2
Section B 2.5
3. It was good 2
4. Take Care 3
У меня есть часть для печати вопросов и ответов, но не в среднем. Я знаю, что не могу использовать переменную внутри цикла for.
Ниже мой xslt.
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2><center>Details</center></h2>
<table>
<tr>
<td>Section A</td>
<td>????</td>
</tr>
<xsl:for-each select="details/questions/question[@section='a']">
<xsl:variable name="id" select="@id"/>
<tr>
<td><xsl:value-of select="@text"/></td>
<td><xsl:value-of select="//answers[question/@id=$id]/answer"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
В принципе, это * группировка * вопрос. См. Http://www.jenitennison.com/xslt/grouping/muenchian.html и многочисленные примеры здесь на SO. - Обратите также внимание: ваш XML не является корректным, и XSLT, который вы показываете нам, использует неопределенную переменную. –
Я смотрю на этот пример. http://stackoverflow.com/questions/16222647/get-the-average-of-elements-values-in-xsl. Но я не могу понять, как указать на выбор вопроса на основе раздела и найти среднее значение в отдельном узле – user4925190
обновил мой xslt! – user4925190