【问题标题】:XSLT Concatenating the values with comma (,)XSLT 用逗号 (,) 连接值
【发布时间】:2011-01-01 03:58:25
【问题描述】:

我需要遍历 xml 文档中的所有节点 并用逗号 ( , ) 附加值 最后在最后一个元素之后我不应该有逗号(,)

任何人都可以帮助我。

谢谢你, 拉马纳库马尔。

【问题讨论】:

标签: xslt


【解决方案1】:

你可以这样做:

<xsl:for-each select="element">
    <xsl:value-of select="whatever" />
    <xsl:if test="position() != last()">, </xsl:if>
</xsl:for-each>

position() 函数返回for-each 上下文中当前元素的索引,last() 返回最后一个元素的索引。

XSLT 文档的Conditional Processing with xsl:if 部分提供了有关此示例的更多信息。

【讨论】:

    【解决方案2】:

    XSLT 2.0(或更高版本)中,您可以使用 string-join function

    <xsl:value-of  select="string-join(/element/whatever, ',')"/>
    

    【讨论】:

    • 我想知道,.net 3.5 是否支持 XSLT 2.0
    • .NET 没有原生 XSLT 2.0 支持,但 Saxon 是 .NET 2.0 或更高版本的一个选项:saxon.sourceforge.net
    • Saxon 太慢了,我建议你坚持使用 XSLT 1.0。
    • @astrojuanlu:我建议您使用可靠的引用来备份您未经证实的声明,或者删除您的评论。就目前而言,它对你的影响比对撒克逊人的影响更差。谢谢。
    【解决方案3】:

    XSLT 2.0(或更高版本)中,您可以使用带有分隔符的 xsl:value-of

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

    如果存在separator属性,则该属性的有效值用于分隔结果序列中的相邻项

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2013-10-06
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多