如何在 for-each 循环中的每个元素之间添加分隔符?
How to add a delimiter between each element in a for-each loop?
我正在遍历列表中的每个元素并输出特定值:
<xsl:for-each select="properties/property">
<xsl:value-of select="name"/>
</xsl:for-each>
这只是输出 属性 的 name
节点的串联。
我想在每个元素之间添加分隔符,例如;
。如何做到这一点?
我列出了 XSLT 版本 1.0、2.0 和 3.0,因为不同版本之间的功能可能有所不同。
如果您使用的是 XSLT 2.0 或更高版本,您可以删除 xsl:for-each
并在一个语句中完成
<xsl:value-of select="properties/property/name" separator=";" />
在 XSLT 1.0 中,您需要做更多的工作....
<xsl:for-each select="properties/property">
<xsl:if test="position() > 1">;</xsl:if>
<xsl:value-of select="name"/>
</xsl:for-each>
XSLT 2.0 和 XSLT 1.0 之间的区别是因为在 XSLT 2.0 中,xsl:value-of
将 return 由 "select" 语句编辑的所有节点的值 return , 但在 XSLT 1.0 中,它只有 return 第一个节点的值应该有多个。
我正在遍历列表中的每个元素并输出特定值:
<xsl:for-each select="properties/property">
<xsl:value-of select="name"/>
</xsl:for-each>
这只是输出 属性 的 name
节点的串联。
我想在每个元素之间添加分隔符,例如;
。如何做到这一点?
我列出了 XSLT 版本 1.0、2.0 和 3.0,因为不同版本之间的功能可能有所不同。
如果您使用的是 XSLT 2.0 或更高版本,您可以删除 xsl:for-each
并在一个语句中完成
<xsl:value-of select="properties/property/name" separator=";" />
在 XSLT 1.0 中,您需要做更多的工作....
<xsl:for-each select="properties/property">
<xsl:if test="position() > 1">;</xsl:if>
<xsl:value-of select="name"/>
</xsl:for-each>
XSLT 2.0 和 XSLT 1.0 之间的区别是因为在 XSLT 2.0 中,xsl:value-of
将 return 由 "select" 语句编辑的所有节点的值 return , 但在 XSLT 1.0 中,它只有 return 第一个节点的值应该有多个。