Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 如何在for-each循环中的每个元素之间添加分隔符?_Xslt_Xslt 1.0_Xslt 2.0_Xslt 3.0 - Fatal编程技术网

Xslt 如何在for-each循环中的每个元素之间添加分隔符?

Xslt 如何在for-each循环中的每个元素之间添加分隔符?,xslt,xslt-1.0,xslt-2.0,xslt-3.0,Xslt,Xslt 1.0,Xslt 2.0,Xslt 3.0,我循环遍历列表中的每个元素并输出特定值: <xsl:for-each select="properties/property"> <xsl:value-of select="name"/> </xsl:for-each> 这只是输出属性的名称节点的串联 我想添加分隔符,例如在每个元素之间。如何做到这一点 我列出了XSLT版本1.0、2.0和3.0,因为不同版本的功能可能不同。如果您使用的是XSLT 2.0或更高版本,您可以删除每个版本的xsl:f

我循环遍历列表中的每个元素并输出特定值:

<xsl:for-each select="properties/property">
    <xsl:value-of select="name"/>
</xsl:for-each>

这只是输出属性的
名称
节点的串联

我想添加分隔符,例如
在每个元素之间。如何做到这一点


我列出了XSLT版本1.0、2.0和3.0,因为不同版本的功能可能不同。

如果您使用的是XSLT 2.0或更高版本,您可以删除每个版本的
xsl:for
,只需在一条语句中执行即可

<xsl:value-of select="properties/property/name" separator=";" />

在XSLT1.0中,您需要做更多的工作

<xsl:for-each select="properties/property">
   <xsl:if test="position() > 1">;</xsl:if>
   <xsl:value-of select="name"/>
</xsl:for-each>

;
XSLT2.0和XSLT1.0之间的区别在于,在XSLT2.0中,
xsl:value of
将返回“select”语句返回的所有节点的值,但在XSLT1.0中,如果有多个节点,它只返回第一个节点的值