Последовательность из более чем одного элемента не допускается в качестве первого аргумента функции fn: generate-id () (<Records>, <Records>) - PullRequest
1 голос
/ 08 февраля 2020

Я пытаюсь сгруппировать сегменты XML на основе двух значений поля XML (GroupPolicyNumber & ParticipantIdentifier) ​​и написанного ниже кода XSLT. но получая ошибку:

Последовательность из более чем одного элемента не допускается в качестве первого аргумента функции fn: generate-id () (,)

<xsl:for-each select="Records[generate-id() = generate-id(key('groups',  concat(GroupPolicyNumber, '|', ParticipantIdentifier)))]">

1 Ответ

1 голос
/ 08 февраля 2020

Хорошо, правильное выражение:

<xsl:for-each select="Records[generate-id() = generate-id(key('groups',  concat(GroupPolicyNumber, '|', ParticipantIdentifier))[1])]">

Однако вы не получите эту ошибку, если (1) вы не используете процессор XSLT 2.0 (или выше) и (2) ваша таблица стилей помечена как version="2.0" (или выше). Так что возникает вопрос, почему вы пытаетесь использовать мюнхенскую группировку вместо встроенного метода xsl:for-each-group.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...