Dans mon XML, j'ai les éléments suivants:
<a>
<b>
<c something="false">
<d>
<e>
<f>someResult</f>
</e>
</d>
</c>
</b>
</a>
Maintenant, dans le XSL dans une boucle, je peux faire ce qui suit:
<xsl:value-of select="f"></xsl:value-of>
Mais comment puis-je obtenir l'attribut en c?
J'ai essayé de faire ce qui suit
<xsl:value-of select="////@something"></xsl:value-of>
En plus d'essayer un parent et rien ne semble fonctionner. Pouvez-vous obtenir des nœuds parents comme celui-ci?
De plus, je ne peux pas simplement faire:
<xsl:value-of select="/a/b/c/@something"></xsl:value-of>
Comme il peut y avoir plusieurs de c.
Pour monter dans l'arborescence, vous utilisez ".." par niveau, c'est-à-dire dans ce cas probablement
select="../../../@something"
Vous pouvez également sélectionner un nœud ancêtre par son nom (environ)
select="ancestor::c[1]/@something"
Voir http://www.stackoverflow.com/questions/3672992 pour d'autres exemples
tiliser:
ancestor::c[1]/@something
Cela sélectionne l'attribut nommé something
du premier ancêtre (à partir du nœud actuel) nommé c
.