微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml – 此xpath中count()的功能是什么?

我在 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循环在哪些元素中迭代?你能为这个表达提供自然语言翻译吗?谢谢.

解决方法

Can you provide a natural language translation for this expression?

简而言之,它意味着“对于同类产品中的第一个产品”.

怎么会这样?它包含文档中任何位置的所有产品元素:

<xsl:for-each select="//product">

并通过表达式过滤它们:

[count(. | key('products-by-category',@category)[1]) = 1]

在这个表达式中,这部分:

key('products-by-category',@category)[1])

指的是与当前评估的产品相同的第一个产品节点.

现在,如果当前评估的产品也是其类别中的第一个产品,那么将两者一起计数将返回1.否则,将有两个不同的节点要计数,结果将是2.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。