2010-01-04 14 views
9

ho bisogno di scorrere tutti i nodi del documento XML e aggiungere i valori con virgola (,) finalmente dopo l'ultimo elemento non avrei commma (,)XSLT concatenazione dei valori con virgola (,)

qualsiasi corpo può aiutarmi.

ringraziandoti, Ramana kumar.

+0

Eventuali duplicati di [Come faccio a generare un elenco separato da virgole con XSLT/XPath?] (Http://stackoverflow.com/questions/666584/how-do-i-generate-a-comma- separate-list-with-xslt-xpath) –

risposta

14

si può fare qualcosa di simile:

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

La funzione position() restituisce l'indice dell'elemento corrente nel for-each contesto, e last() restituisce l'indice dell'ultimo elemento.

La sezione Conditional Processing with xsl:if della documentazione XSLT fornisce ulteriori informazioni su questo esempio.

9

In XSLT 2.0 è possibile utilizzare lo string-join function.

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

Voglio sapere, se XSLT 2.0 è supportato in .net 3.5 –

+1

.NET non ha il supporto nativo XSLT 2.0, ma Saxon è un'opzione per .NET 2.0 o successiva: http: //saxon.sourceforge.net/ –

+0

Saxon è lento come l'inferno, ti consiglio di attenersi a XSLT 1.0. – astrojuanlu