xml – 此xpath中count()的功能是什么?
发布时间:2020-12-16 23:01:08 所属栏目:百科 来源:网络整理
导读:我在 Muenchian method的实现中看到了这行代码: xsl:for-each select="//product[count(. | key('products-by-category',@category)[1]) = 1]" 我不知道count()发生了什么.我认为count(.)表示count(self :: product),它始终为1,管道运算符(|)添加与键匹配的
我在
Muenchian method的实现中看到了这行代码:
<xsl:for-each select="//product[count(. | key('products-by-category',@category)[1]) = 1]"> 我不知道count()发生了什么.我认为count(.)表示count(self :: product),它始终为1,管道运算符(|)添加与键匹配的第一个节点,但不应该是键”by-category-category’总是返回一个节点集,因为该产品具有’category’属性,因此匹配自己? 这个for-each循环在哪些元素中迭代?你能为这个表达提供自然语言翻译吗?谢谢. 解决方法
简而言之,它意味着“对于同类产品中的第一个产品”. 怎么会这样?它包含文档中任何位置的所有产品元素: <xsl:for-each select="//product"> 并通过表达式过滤它们: [count(. | key('products-by-category',@category)[1]) = 1] 在这个表达式中,这部分: key('products-by-category',@category)[1]) 指的是与当前评估的产品相同的第一个产品节点. 现在,如果当前评估的产品也是其类别中的第一个产品,那么将两者一起计数将返回1.否则,将有两个不同的节点要计数,结果将是2. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |