Есть фрагмент скрипта:
<xsl:apply-templates select="item1/item2[generate-id(.)=generate-id(key('DutyKey',item3))]">
<xsl:sort order="ascending" select="item3"/>
</xsl:apply-templates>
С помощью которого я избавляюсь от дублирования строк при выводе таблицы в вызываемом темплейте.
Сам xml имеет вид:
<item0>
<item1>
<item2>
<item3>
</item3>
</item2>
<item2>
<item3>
</item3>
</item2>
</item1>
</item0>
Элементов item0 может быть несколько - и проблема именно в этом. Ключи строятся сразу для всего документа, а не для текущего item1 и как следствие - таблица заполняется только для первого item0.
Как можно заставить key() генерировать ключи только для текущего контекста?