Comment sélectionner le premier nœud dans xslt
Mon XML me donne de multiples images attribuées à différents mmids:
<Mediendaten>
<Mediendaten mmid="22404">
<url size="original">A 22404 FILE</url>
<url size="thumb">ANOTHER 22404 FILE</url>
</Mediendaten>
<Mediendaten mmid="22405">
<url size="original">A 22405 FILE</url>
<url size="thumb">ANOTHER 22405 FILE</url>
</Mediendaten>
<Mediendaten>
Mon XSLT sélectionne uniquement les url de taille=pouce:
<xsl:template match="/Mediendaten">
<xsl:apply-templates select="Mediendaten/url">
</xsl:apply-templates>
</xsl:template>
<xsl:template match="Mediendaten/url">
<xsl:if test="@size = 'thumb'">
<img width="280" border="0" align="left">
<xsl:attribute name="src"><xsl:value-of select="."/></xsl:attribute>
</img>
</xsl:if>
</xsl:template>
CEPENDANT, j'ai seulement besoin de la vignette de la première mmid (dans ce cas-22404). Je n'ai PAS de contrôle sur le mmid valeur.
Comment puis-je arrêter mon modèle c'sorties de la manette de fichier de la première mmid?
Merci beaucoup pour toute aide!
Plutôt que d'utiliser un
<xsl:if>
à l'intérieur de votre modèle, vous pouvez mettre de critères à l'intérieur de votre template match: <xsl:template match="Mediendaten/url[@size]">
. Il donnera le processeur XSLT une opportunité pour optimiser, et simplifie la feuille de style.OriginalL'auteur Richard Tinkler | 2013-06-04
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple est de changer le modèle pour
/Mediendaten
:[@Mmid] limite le choix à l'enfant Mediendaten éléments qui portent la mmid attribut, l' [1] limite la sélection de la première de ces.
P. S. celui qui a conçu le XML que vous utilisez vous hait. (En utilisant le même nom pour les deux types d'élément désormais appelé
Mediendaten
est un sale truc pourri; il fait tout ce que vous faites avec les données plus difficiles. Essayez de comprendre ce que vous avez fait à la pisse d'eux si mal, et de faire amende honorable. Juste un mot pour le sage.)avez-vous jamais l'envoyer?
OriginalL'auteur C. M. Sperberg-McQueen
OriginalL'auteur Rubens Farias
Somme félicite.
Tout d'abord suivre la suggestion de Mads Hansen. Un modèle qui maintenant comment gérer les "pouce" des images.
Alors si vous aimez à la sortie de la première thump image (à partir de Mediendaten dans l'ordre du document) utilisation:
Mais si le sens de l'
"CEPENDANT, j'ai seulement besoin de la vignette de la première mmid"
n'est pas Mediendaten (avec mmid) dans l'ordre du document, mais le Mediendaten avec le plus petit mmid. Essayez ceci:
OriginalL'auteur hr_117