2010-01-04 27 views
9

Necesito bucle a través de todos los nodos en el documento xml y añadir los valores con coma (,) finalmente después de que el último elemento que no debería haber commma (,)XSLT la concatenación de los valores con coma (,)

puede cualquier cuerpo ayudarme.

agradeciéndole, Ramana kumar.

+0

duplicado posible de [¿Cómo se genera una lista separada por comas con XSLT/XPath?] (Http://stackoverflow.com/questions/666584/how-do-i-generate-a-comma- separated-list-with-xslt-xpath) –

Respuesta

14

se puede hacer algo como esto:

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

La función position() devuelve el índice del elemento actual en el contexto for-each y last() devuelve el índice del último elemento.

La sección Conditional Processing with xsl:if de la documentación XSLT proporciona más información sobre este ejemplo.

9

En XSLT 2.0 puede usar el string-join function.

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

Quiero saber si XSLT 2.0 es compatible con .net 3.5 –

+1

.NET no tiene soporte nativo XSLT 2.0, pero Saxon es una opción para .NET 2.0 o posterior: http: //saxon.sourceforge.net/ –

+0

Saxon es lento como el infierno, le recomiendo que se adhiera a XSLT 1.0. – astrojuanlu

Cuestiones relacionadas