XSLT Таблица со столбцом с несколькими строками
Несколько часов не могу понять, как же реализовать столбец "Название 3" (см. скрин).
Смысл такой: Я через цикл for-each должен проходиться и засовывать данные в таблицу с представленным (скрин) шаблоном. Количество перечисляемых данных в столбце 3 ("Что-то 31" - "Что-то 52") может быть разным. Т.е. в примере в одной строке 3 подстроки, но может быть и 1, а может быть и 5. Все остальные ячейки имеют обычный вид.
Как это можно реализовать?
Пытался шаблон набросать, но даже он не получается:
<table class="commissionTable">
<tr>
<td>Название 1</td>
<td>Название 2</td>
<td colspan="2">Название 3</td>
<td>Название 4</td>
</tr>
<tr>
<td rowspan="3">Что-то 1</td>
<td rowspan="3">Что-то 2</td>
<td>Что-то 31</td>
<td>Что-то 32</td>
<tr>
<td>Что-то 41</td>
<td>Что-то 42</td>
</tr>
<tr>
<td>Что-то 51</td>
<td>Что-то 52</td>
</tr>
<td rowspan="3">Что-то 33</td>
</tr>
</table>
Примерный код с for-each:
<table>
<tr class="rh" style="background-color: #D9D9D9;">
<td>
1
</td>
<td>
2
</td>
<td>
3
</td>
<td>
4
</td>
<td>
5
</td>
<td colspan="2">
6
</td>
<td>
7
</td>
</tr>
<xsl:for-each select="po">
<xsl:sort select="string-length(rp)"/>
<xsl:sort select="rp"/>
<xsl:sort select="op"/>
<xsl:sort select="m"/>
<xsl:sort select="ma"/>
<xsl:variable name="cc" select="от 1 до 10"></xsl:variable>
<tr rowspan="$cc" class="rh">
<td rowspan="$cc">
<xsl:choose>
<xsl:when test="$cr = 1">
1
</xsl:when>
</xsl:choose>
</td>
<td rowspan="$cc">
<xsl:value-of select="rns"/>
</td>
<td rowspan="$cc">
<xsl:choose>
<xsl:when test="rp!= ''">
<xsl:value-of select="rp"/>
</xsl:when>
<xsl:otherwise>
-
</xsl:otherwise>
</xsl:choose>
</td>
<td rowspan="$cc">
data
</td>
<td rowspan="$cc">
<xsl:choose>
<xsl:when test="cdata">data1</xsl:when>
<xsl:otherwise>data2</xsl:otherwise>
</xsl:choose>
</td>
<xsl:for-each select="m">
<td>
<xsl:variable name="fn" select="fn"></xsl:variable>
<xsl:variable name="ln" select="ln"></xsl:variable>
<xsl:variable name="mn" select="mn"></xsl:variable>
<xsl:value-of select="concat($ln, ' ', $fm, ' ', $mn, ' ')"/>
</td>
<td>
<xsl:choose>
<xsl:when test="ma= 'accept'">data1</xsl:when>
<xsl:when test="ma!= 'accept'">data2</xsl:when>
</xsl:choose>
</td>
</xsl:for-each>
<td rowspan="$cc">
data
</td>
</tr>
</xsl:for-each>
</table>
Источник: Stack Overflow на русском