Je sais que je manque quelque chose ici. Dans la transformation XSLT ci-dessous, le résultat réel ne correspond pas au résultat souhaité.
à l'intérieur du Remarque: la transformation est exécutée à l'aide de PHP. Les déclarations XML ont été omises pour la brièveté. Em> p> résultat: strong> p> pour chacun code>, je veux appliquer le
match = "piste" code> Modèle à chaque élément sélectionné code> Elément CODE>. Si j'ai compris correctement XSLT, avec la configuration actuelle, seuls les nœuds enfants de chaque élément de piste code> de chaque fichier code> sont correspondés à des modèles, pas de la piste
de suivi de code> eux-mêmes. P> < p> Comment puis-je faire les éléments code> piste code> passer par le modèle comme vous le souhaitez? Dois-je repenser l'approche entière? P>
4 Réponses :
Je le restructurerais un peu (si vous n'avez pas besoin de tri de l'approche Ceci semble plus court et plus au point, imho. p> Je suppose que votre p> traverse tous les éléments de piste avec le Si vous souhaitez vraiment utiliser le pour chaque code> permet d'approcher possible):
pour chacun code>, et Applique ensuite les règles par défaut à ses descendants. Donc, le contenu du
pour chacun code> a le même noeud de contexte que le modèle
match = "piste" code> a, ainsi que le
match = "piste" Code> Modèle ne correspond jamais. P>
pour chacun code> de cette manière, vous devrez modifier l'une des deux éléments suivants de votre approche: < / p>
nom = "piste" code> attribut au modèle
match = "piste" code> modèle, puis utilisez
pour chacun code> (mon idée et pire que
TIM C code>'s) LI>
TIM C CODE> en utilisant
La solution de restructuration semble moins modulaire que possible (cela ne me permet pas d'inclure également des pistes dans un
@Jakob Je suis conscient que c'est ancien, mais je veux juste souligner que vous pouvez utiliser l'attribut code> Mode code> pour sélectionner un autre modèle pour les mêmes nœuds. Comme Je serais d'accord avec "NDIM" que vous devriez probablement restructurer votre XSLT de supprimer le XSL: pour-chaque boucle. Vous pouvez également modifier les modèles XSL: Apply-apply pour sélectionner le nœud de piste en cours dans Le XSL: pour chacun p> Garder le XSL: pour chacun, au moins, vous permettrait de trier les pistes dans une autre commande, si vous le souhaitez. P> p>
Bonne prise sur le tri. Je suppose que c'est la meilleure solution, en raison du tri.
J'aurais pu assermenté j'ai déjà essayé cela, mais je suppose que non. C'est exactement ce que je cherchais, cependant! Je pense que l'utilisation d'applicatifs et de modes de modèle est la solution de nettoyage: donne: p> L'instruction pour chaque modifie le nœud de contexte de l'album à suivre.
Les modèles d'application appellent par défaut applique des modèles aux nœuds enfants du nœud de contexte qui, dans votre cas, sont les nœuds enfants de l'élément de piste. D'où votre modèle qui correspond à "piste" ne fait jamais frapper. P>
code> ou
code> ailleurs sur la page / Site, du moins n'utilisant pas la même feuille de style), mais vous avez probablement raison en ce que c'est la solution la plus lisse pour cet exemple.
votes
votes
votes