la construction d'un XSLT de chaîne (variable) dans une boucle foreach
Le problème, je suis face semble simple, mais étant un novice dans tout ce XSL - je suis encore à trouver une solution appropriée. Ce que je veux faire est de construire une chaîne de caractères par la concaténation des résultats d'une foreach élément de la boucle, que je puisse plus tard, les utiliser comme une valeur pour un attribut d'un élément HTML.
Donné:
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd>
<country>UK</country>
<company>CBS Records</company>
</cd>
<cd>
<country>USA</country>
<company>RCA</company>
</cd>
<cd>
<country>UK</country>
<company>Virgin records</company>
</cd>
</catalog>
De sortie souhaité: CBS;RCA;Virgin records
J'ai besoin d'un valide partie de XSLT code pour effectuer cette transformation dans la façon décrite ci-dessus. Je crois que j'ai besoin d'un xsl-variable qui tiendrait le résultat de la concaténation <company>
et un caractère séparateur de ;
. Comment cela peut-il être fait? Merci.
OriginalL'auteur electroglow | 2012-08-12
Vous devez vous connecter pour publier un commentaire.
Je ne crois pas que vous pouvez utiliser XSL variables pour concaténer, parce qu'une fois que la valeur d'une variable est définie, il ne peut pas être changé. Au lieu de cela, je pense que vous voulez quelque chose comme:
N'a qu'un sens pour vous?
Edit: Viens de réaliser que j'ai peut-être mal lu, comment vous avez l'intention d'utiliser la variable. L'extrait de code que j'ai posté ci-dessus peut être enveloppé dans un élément variable pour l'utiliser plus tard, si c'est ce que vous vouliez dire:
pourriez-vous me faire la gentillesse d'accepter ma réponse, alors? Il devrait y avoir un contour vert d'une coche à côté de ma réponse que vous pouvez cliquer pour indiquer que c'est ce qui a fonctionné pour vous et à résoudre la question. Il est considéré comme bon StackOverflow ettiquette à "accepter" la bonne réponse à chaque question que vous vous posez. Merci à l'avance. 🙂
OriginalL'auteur Erika E
Ici est un simple, vrai XSLT solution:
Lorsque cette transformation est appliquée sur le document XML:
le voulait, résultat correct (toutes les entreprises concaténées et délimité par un
;
) est produite:OriginalL'auteur Dimitre Novatchev
Si vous pouvez utiliser XSLT 2.0 alors de la façon suivante devrait fonctionner:
Utiliser le
string-join()
fonction:Utilisation
@separator
avecxsl:value-of
:OriginalL'auteur Mads Hansen