信息发布→ 登录 注册 退出

XSLT怎么获取当前分组内的项目 current-group()

发布时间:2025-12-16

点击量:
current-group() 返回当前分组的节点序列,顺序与输入一致;只能在 xsl:for-each-group 内使用,常配合 count()、current-grouping-key() 等实现分组聚合与嵌套处理。

current-group() 是 XSLT 2.0+(及 XPath 2.0+)中 xsl:for-each-group 内部专用函数,**只能在 xsl:for-each-group 的作用域内使用**,用于获取当前正在处理的这个分组所包含的所有节点(即“这一组”的全部项目)。

它返回什么?

返回一个节点序列(node sequence),顺序与原始输入中这些节点出现的顺序一致。注意:不是字符串、不是单个节点,而是**一组节点** —— 所以你可以对它用 count()position()for-each,甚至嵌套 xsl:for-each-group 再分组。

怎么用?常见写法

典型结构如下:


  
    

Category:


    

This group has items.


    

          
            

  •       

        

  

关键注意事项

  • 不能在 xsl:for-each-group 外调用 —— 否则报错或返回空序列
  • 不等于 .current(). 是当前上下文节点(通常是分组里的第一个节点),而 current-group() 是整个组
  • 如果想取组内第一个/最后一个节点,写 current-group()[1]current-group()[last()]
  • 配合 current-grouping-key() 使用最常见 —— 前者是“这组的值”,后者是“这组的内容”

小技巧:过滤或变换当前组

你可以在 current-group() 上直接加谓词或函数:

  • current-group()[price > 100] —— 取本组中价格超百的项
  • current-group()/@id —— 提取本组所有项目的 id 属性值序列
  • string-join(current-group()/name, ', ') —— 把本组所有 name 拼成逗号串

基本上就这些。记住:它是分组时的“组内视图”,用对了能让聚合、汇总、嵌套列表变得非常简洁。

标签:# ul  # 报错  # 你可  # 能让  # 能在  # 它是  # 只能在  # 你可以  # 这一  # 这组  # 第一个  # li  # node  # position  # this  # class  # 字符串  # select  # for  # count  # String  # 作用域  # go  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!