Я немного запутался об этой ключевой функции:XSLT - Основные функции()
<xsl:for-each select="article[count(. | key('idkey', @id)[1]) = 1]>
Есть ли кто-нибудь, что можно кратко объяснить, Что происходит в этом для-каждого цикла?
Ключ: <xsl:key name="idkey" match="/newspapers/newspaper" use="@id"/>
@id является атрибутом в газете.
Спасибо.
Извините, но вы ошибаетесь, потому что ключ ** idkey ** не является ключом к статье/@ id, это газета/@ id. Или я что-то пропустил? –
@ hr_117: При написании я хотел, чтобы OP показывал декларацию для 'idkey'. Я почему-то не обратил на это внимания. Но, как и все, «select» XPath очень странно, потому что поскольку ни один узел node, возвращаемый 'key()', не может содержать элемент 'article', предикат будет таким же, как' 1 + count (key ('idkey' , @id) [1]) = 1' или, как вы говорите, 'not (key ('idkey', @id)). Это явно ошибка. – Borodin