IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL] Sélectionner un élément par sa valeur


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Invité
    Invité(e)
    Par défaut [XSL] Sélectionner un élément par sa valeur
    Bonjour,

    Désolé de déranger pour une question qui m'a l'air bête mais je bloque la dessus depuis as mal de temps et tous les cours que j'ai lu ne m'ont servis à rien.

    J'ai besoin de lire une base de données iPhoto (un xml ou plutôt une plist) pour en extraire le nom des tous les albums (Rolls dans le fichier).

    Voilà une version (extrêmement) simplifiée du fichier AlbumData.xml (la base de données) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="AlbumData.xsl"?>
    <plist version="1.0">
    	<dict>
    		<key>List of Rolls</key>
    		<array>
    			<dict>
    				<key>RollID</key>
    				<integer>1</integer>
    				<key>RollName</key>
    				<string>Album test 1</string>
    				<key>KeyList</key>
    				<array>
    					<string>2</string>
    				</array>
    				<key>PhotoCount</key>
    				<integer>1</integer>
    			</dict>
    		</array>
    	</dict>
    </plist>
    Ce qu'il me faut c'est récupérer le nom de tous les albums (ici il n'y en a qu'un : "album test 1"). Pour ça, je cherche à sélectionner le "List of Rolls" (en rouge) et pour le reste je devrais pouvoir m'en sortir à coup de fro-each.

    Voila mon fichier xsl (le début tou du moins) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="html"/>
    	<xsl:template match="/">
    		<html>
    			<body>
    				<xsl:apply-templates/>
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="//dict[key = 'List of Rolls']">
    		<xsl:value-of select="."/>
    	</xsl:template>
    </xsl:stylesheet>
    Pour l'instant j'essaie d'afficher le contenu de la clé à savoir "List of Rolls" mais au lieu de ça il me sort le contenu texte de tout mon XML.

    J'suis perdu.

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    essaie cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="html"/>
    	<xsl:template match="/">
    		<html>
    			<body>
    				<xsl:apply-templates select="//dict/key[. = 'List of Rolls']//string"/>
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="string">
    		<xsl:value-of select="."/><br/>
    	</xsl:template>
    </xsl:stylesheet>

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ca marche en supprimant le //string à la fin de l'apply-template, il m'affiche effectivement "List of Rolls".

    J'vais essayer de continuer pour afficher la liste des albums.

    Merci beaucoup

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re,

    C'est juste pour dire que grâce aux conseil de fraoustin, j'ai réussi à obtenir c'que je voulais.

    Je vous poste le xsl si ça intéresse quelqu'un...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="html"/>
    	<xsl:template match="/">
    		<html>
    			<body>
    				<xsl:apply-templates select="//dict/key[. = 'List of Rolls']"/>
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="key[. = 'List of Rolls']">
    		<xsl:value-of select="."/>
    		<xsl:text> : </xsl:text>
    		<br/>
    		<ul>
    			<xsl:apply-templates select="//dict/key[. = 'RollName']"/>
    		</ul>
    	</xsl:template>
    	<xsl:template match="key[. = 'RollName']">
    		<li>
    			<xsl:value-of select="following-sibling::string"/>
    		</li>
    	</xsl:template>
    </xsl:stylesheet>
    Pour la petite histoire, ça sert simplement à afficher la liste des album de sa bibliothèque iPhoto.
    Ca me servira à faire une galerie en PHP pour mettre toutes mes photos en ligne qui n'a besoin d'aucune (très peu) d'administration : toutes les photos ajoutées dans iPhoto se retrouvent automatiquement disponible en ligne.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sélectionner une option par sa valeur
    Par Rachel dans le forum Téléchargez
    Réponses: 0
    Dernier message: 30/01/2012, 22h50
  2. sélectionner un élément par défaut dans une liste déroulante
    Par touf35 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/06/2008, 18h08
  3. [WPF] ListBox sélectionner des élément par défaut
    Par JuTs dans le forum Framework .NET
    Réponses: 15
    Dernier message: 27/12/2007, 16h25
  4. [XSL] Sélectionner les éléments qui n'ont pas un certain fils
    Par lebechen dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/07/2006, 17h54
  5. Réponses: 2
    Dernier message: 10/05/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo