2010-01-04 27 views
9

我需要遍歷XML文檔 中的所有節點,並用逗號追加值(,) 最後(,)的最後一個元素,我不應該commma後XSLT串聯與逗號值(,)

可以任何身體幫助我。

謝謝你, Ramana kumar。

+0

的[我如何生成XSLT/XPath的一個逗號分隔的列表?(可能的複製http://stackoverflow.com/questions/666584/how-do-i-generate-a-comma-分隔列表與xslt-xpath) – 2016-11-05 00:39:49

回答

14

你可以做這樣的事情:

<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部分提供了有關此示例的更多信息。

9

XSLT 2.0您可以使用string-join function

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

我想知道,在.net 3.5中支持XSLT 2.0 – 2010-01-12 12:22:38

+1

.NET不支持本機XSLT 2.0,但Saxon是.NET 2.0或更高版本的選項:http: //saxon.sourceforge.net/ – 2010-01-12 16:21:04

+0

撒克遜地獄速度很慢,我建議你堅持使用XSLT 1.0。 – astrojuanlu 2016-04-25 08:38:15