XSL for-each:如何检测最后一个节点? [英] XSL for-each: how to detect last node?

查看:31
本文介绍了XSL for-each:如何检测最后一个节点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个简单的代码:

<xsl:for-each select="GroupsServed">
  <xsl:value-of select="."/>,<br/>
</xsl:for-each></font>

我正在尝试为添加的每个项目添加一个逗号.

I'm trying to add a comma for each item added.

这有两个缺陷:

  1. 只有 1 个项目的情况:代码会无条件地添加一个逗号.
  2. 超过 1 个项目的情况:最后一个项目会有一个逗号.

你认为解决这个问题的最优雅的方法是什么?

What do you think is the most elegant solution to solve this?

我使用的是 XSLT 2.0

I'm using XSLT 2.0

推荐答案

如果您使用的是 XSLT 2.0,那么您的问题的标准答案是

If you're using XSLT 2.0, the canonical answer to your problem is

<xsl:value-of select="GroupsServed" separator=", " />

在 XSLT 1.0 上,查找节点集中最后一个元素的 CPU 成本有点高的方法是

On XSLT 1.0, the somewhat CPU-expensive approach to finding the last element in a node-set is

<xsl:if test="position() = last()" />

这篇关于XSL for-each:如何检测最后一个节点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆