Нам нужно сделать строки таблицы группировки в содержимом первого столбца, а затем выполнить определенную обработку для каждой строки в группе. Содержимое первого столбца - цифры. К нему будет применен for-each-group
, если в столбцах нет количества цифр.XSLT-2.0: группировка по содержимому узла
Пример входных данных:
<table>
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>1</td></tr>
<tr><td>1,2,3</td></tr>
<tr><td>1,4</td></tr>
</table>
В соответствии с этой задачей, я должен иметь 4 группы:
- с номером 1 в колонке: 1,3,4 , 5-й ряд;
- с номером 2 в колонке 2 и строке 4;
- Номер 3: 4th;
- 4: 5.
Общий шаблон выглядит следующим образом:
<xsl:template match="table">
<xsl:for-each-group select="tr" group-by="td[1]">
<xsl:for-each select="current-group()">
<!-- transformation -->
</xsl:for-each>
</xsl:for-each-group>
</xsl:template>
Так что group-by = "td [1]"
не работает.
Ключ с регулярными выражениями ... Мне сложно.