Использование XPath для current-group () - PullRequest
0 голосов
/ 27 апреля 2018

Мне нужно выбрать подмножество узлов current-group() в цикле xsl:for-each-group. Когда я использую XPath вида current-group()/foo, ничего не найдено. Если, однако, я привязываю текущую группу к переменной следующим образом:

<xsl:variable name="foo"><xsl:copy-of select="current-group()"/></xsl:variable>

и затем используйте XPath вида $foo/foo, я получаю ожидаемые совпадения. Я подозреваю, что проблема как-то связана с типом current-group() и с тем, как переменная $foo имеет другой тип, но я не могу понять это самостоятельно. Любые подсказки, как я могу избежать введения переменной для преобразования типа? Или это что-то другое?

1 Ответ

0 голосов
/ 27 апреля 2018

если вы делаете что-то вроде: <xsl:for-each-group select="foo" group-by="type"> <xsl:value-of select="current-group()[self::foo]"/> </xsl:for-each-group> Тогда current-group() возвращает последовательность элементов

Но <xsl:variable name="foo"><xsl:copy-of select="current-group()"/></xsl:variable>

возвращает узел документа, который содержит последовательность foo, и тогда вам нужно использовать: <xsl:value-of select="current-group()/foo"/>

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