Modifier: Missundertood la question, désolé.
La réponse est oui.
Entrée:
<secuence>Item1 Item2 Item3</secuence>
Stylesheet:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="secuence/text()" name="secuence">
<xsl:param name="string" select="."/>
<xsl:param name="separator" select="' '"/>
<xsl:if test="$string != ''">
<xsl:choose>
<xsl:when test="contains($string,$separator)">
<xsl:call-template name="secuence">
<xsl:with-param name="string" select="substring-before($string,$separator)"/>
<xsl:with-param name="separator" select="$separator"/>
</xsl:call-template>
<xsl:call-template name="secuence">
<xsl:with-param name="string" select="substring-after($string,$separator)"/>
<xsl:with-param name="separator" select="$separator"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<!-- Your desired template -->
<Item>
<xsl:value-of select="$string"/>
</Item>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Résultat:
<secuence>
<Item>Item1</Item>
<Item>Item2</Item>
<Item>Item3</Item>
</secuence>
Salut, Merci pour votre réponse rapide. Vous avez une question, le paramètre xsl sera "secuence"? Je ne suis pas sûr de la façon dont vous avez réussi à générer la sortie. Je suis un peu nouveau à XSLT, pouvez-vous s'il vous plaît conseiller également comment déboguer? Appréciez votre aide. Merci Raju – Raju
@Raju: Editer la réponse avec un mauvais balisage pour l'exemple de saisie. Les paramètres sont '$ string' et' $ separator'. Dans XSLT, vous pouvez définir des valeurs par défaut pour les paramètres (dans ce cas, la valeur de chaîne du nœud de contexte et du caractère espace). De plus, vous demandez à Carnotaurus: "Est-il possible d'appliquer d'abord le modèle XSL sur la variable, puis le xml qui doit être transformé?". Dans XLST 1.0, il est possible d'appliquer des modèles (comme avec 'xsl: apply-templates') à toute expression qui évalue un ensemble de nœuds, même une variable. Dans XSLT 2.0, vous pouvez également parcourir les secondes (il s'agit d'un nouveau type de données dans XPath 2.0). –