我正在遍历列表中的每个元素并输出某个值:
<xsl:for-each select="properties/property">
<xsl:value-of select="name"/>
</xsl:for-each>
这仅输出属性name
节点的串联。
我想在每个元素之间添加定界符,例如;
。该怎么办?
我列出了XSLT版本1.0、2.0和3.0,因为不同版本之间的功能可能有所不同。
答案 0 :(得分:1)
如果您使用的是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
将返回“ select”语句返回的所有节点的值,但是在XSLT 1.0中,它仅返回第一个节点应该有多个。