gpt4 book ai didi

xslt - 慕尼黑分组

转载 作者:行者123 更新时间:2023-12-01 08:07:41 26 4
gpt4 key购买 nike

我想知道这个谓词 ([1]) 是如何在 muenchian 分组中始终被硬编码为 1 的。经过大量搜索后,这个概念对我来说并不清楚。它被解释为当前节点,与 key 返回的第一组进行比较。为什么总是和第一个匹配到key比较?另外,为什么我们要给 contact[count(. | key('contacts-by-surname', surname)[1]) = 1], the =1 part? 同样 1 是硬编码的。我引用了以下链接

http://www.jenitennison.com/xslt/grouping/muenchian.html

最佳答案

假设我们有一个键定义 <xsl:key name="contacts-by-surname" match="contact" use="surname"/> ,然后是表达式 key('contacts-by-surname', 'Doe')为您提供一个包含所有 contact 的节点集surname 所在的元素是Doe .表达式 key('contacts-by-surname', 'Doe')[1]给你第一个contact在那个“组”中。

现在处理所有contact带有 for-each 的元素或 apply-templates我们通常想要一种方法来识别第一个 contact每个组中的元素。这可以通过 <xsl:for-each select="contact[count(. | key('contacts-by-surname', surname)[1]) = 1]"> 来实现或 <xsl:for-each select="contact[generate-id() = generate-id(key('contacts-by-surname', surname)[1])]"> .

如果您的要求不同,例如您想要标识每个组中的最后一项,那么您当然可以使用不同的谓词,如 <xsl:for-each select="contact[count(. | key('contacts-by-surname', surname)[last()]) = 1]"><xsl:for-each select="contact[generate-id() = generate-id(key('contacts-by-surname', surname)[last()])]"> .

关于xslt - 慕尼黑分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8211834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com