De base de XML/XSLT - valeur-de quand il y a plusieurs éléments du même nom
Quand je suis arriver la valeur d'un élément qui est utilisé plusieurs fois dans le même élément parent, je voudrais obtenir chaque élément du même nom, et pas seulement la première.
E. g. -
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<artist>Bob Dylan2</artist>
<artist>Bob Dylan3</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
</catalog>
Maintenant, quand je pour-chacun à travers chaque CD et d'utiliser la valeur de sortie, le nom de l'artiste, je ne reçois que le premier élément (un peu compréhensible). Mais comment puis-je obtenir TOUS les éléments du même nom à l'intérieur d'une boucle for-each? J'ai essayé de faire un à l'intérieur de chaque boucle, mais n'a pas fonctionné.
Je suis très nouveau pour XML et comment il fonctionne, de sorte s'il vous plaît aller facile sur moi...:-(
OriginalL'auteur lionysis | 2011-12-04
Vous devez vous connecter pour publier un commentaire.
De sortie:
Bob Dylan
Bob Dylan2
Bob Dylan3
Cela semblait fonctionner - j'ai juste eu à faire un intérieur de chaque et le texte(). Pouvez-vous me dire ce que le texte() la fonction n'?
OriginalL'auteur Siva Charan
Mon conseil à tous XSLT novice est pas à utilisation
<xsl:for-each>
-- autant que possible. Je suis conscient d'un seul cas d'utilisation où<xsl:for-each>
est nécessaire, et c'est très rarement rencontré de cas (lorsqu'il est nécessaire de modifier explicitement le document en cours, de sorte que lekey()
fonction de l'utilisation d'un indice construit pour ce document spécifique).C'est probablement l'un des plus simple des solutions possibles (pas de
<xsl:for-each>
et pas de nidification):lorsque cette transformation est appliquée sur le document XML fourni par le:
le voulait, résultat correct est produit:
OriginalL'auteur Dimitre Novatchev
OriginalL'auteur Duong Quang Ha
Il n'y a pas de raison une boucle interne ne fonctionne pas. Ce XSLT syntaxe avez-vous utiliser pour ce faire? Il sonne comme il y a une erreur dans votre xpath ou quelque chose, parce que ce que vous avez décrit devrait fonctionner correctement.
OriginalL'auteur Tom W
Votre XPATH est proably mal:
Tandis que dans le lecteur de CD de l'élément à l'aide d'un foreach:
Qui imprime tous les artistes..
OriginalL'auteur FailedDev
la
text()
la syntaxe xpath sélectionne tout le texte de nœuds enfants de l'actuel nœud spécifié.certains n'aime pas particulièrement ce site, mais pour un début, ce n'est pas mauvais pour vous diriger dans la bonne direction - cliquez ici
OriginalL'auteur