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 :

[XSLT] afficher seulement les données de id="2" [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut [XSLT] afficher seulement les données de id="2"
    Bonjour,

    Je débute en XML/XSL (dreamweaver) et j'ai donc quelques problèmes.

    Pour résumer, j'ai un "catalogue" de deux d'appartements. Chaque appartement possède sa propre page.

    Malheureusement, les deux apparts affichent les données de appartement id="1".
    Comment faire pour que la page du deuxième appart affiche les données dont l'id="2" ?

    Merci !

    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"?>
     
    <location>
     
    	<appartement id="1">
     
    		<description>
    			<nom>Le Un</nom>
    			<disponibilite>3 juin au 6 juillet</disponibilite>
    			<prix>260€</prix>
    		</description>
     
    	</appartement>
     
     
    	<appartement id="2">
     
    		<description>
    			<nom>Le Deux</nom>
    			<disponibilite>13 juin au 16 juillet</disponibilite>
    			<prix>320€</prix>
    		</description>
     
    	</appartement>
     
    </location>

  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
    et voilaun bout de code
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" />
     
    	<xsl:template match="/">
    		<xsl:apply-templates select="/location/appartement[@id='2']" />
    	</xsl:template>
     
    	<xsl:template match="appartement">
                     <appart>
                     <xsl:apply-templates select="*"/>
                     </appart>
    	</xsl:template>
     
    </xsl:stylesheet>
    si tu dois faire un traitement pour id=2 et un autre pour id=1
    tu peux déplacer le filtre
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" />
     
    	<xsl:template match="/">
    		<xsl:apply-templates select="/location/appartement" />
    	</xsl:template>
     
    	<xsl:template match="appartement[@id='2']">
                     <appart2>
                     <xsl:apply-templates select="*"/>
                     </appart2>
    	</xsl:template>
     
    	<xsl:template match="appartement[@id='1']">
                     <appart1>
                     <xsl:apply-templates select="*"/>
                     </appart1>
    	</xsl:template>
     
    </xsl:stylesheet>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Merci fraoustin! Ça répond parfaitement à ma question. Le seul hic c'est moi. Quand je fais les changements pour que seul l'affichage id='2' soit pris en compte, rien ne s'affiche.

    Est-ce possible de me dire comment je dois l'intégrer exactement ? (J'ai résumé la XSL)


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?xml version="1.0" encoding="UTF-8"?><!-- DWXMLSource="partie_gauche.xml" -->
    <!DOCTYPE xsl:stylesheet  [
    	<!ENTITY nbsp   " ">
    	<!ENTITY copy   "©">
    	<!ENTITY reg    "®">
    	<!ENTITY trade  "™">
    	<!ENTITY mdash  "—">
    	<!ENTITY ldquo  "“">
    	<!ENTITY rdquo  "”"> 
    	<!ENTITY pound  "£">
    	<!ENTITY yen    "¥">
    	<!ENTITY euro   "€">
    ]>
     
     
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
    <xsl:template match="/">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
     
    <head>
    <title>location - Le deux</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link href="css/style-screen.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
     
     
    <div id="content-container">
     <div id="lefttop">
     <div class="titreGr"><xsl:value-of select="location/appartement/description/titre"/></div>
     <div class="soustitre"><xsl:value-of select="location/appartement/description/chapeau"/></div>
    <div class="caseTitre"><xsl:value-of select="location/appartement/description/nom"/></div>
    </div>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

  4. #4
    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
    si tu me donnes ton fichier xml et ton fichier xsl et un fichier html que tu souhaites je peux regarder car là avec ton bout de code xsl je n'y arrive pas.
    Tu n'as qu'un template? ou veux tu introduire des noeuds[@id='2']?

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Le DTD Fragment pour les entités devrait être placé avant ton prologue XML (<?xml ... ?>)

    et merci de lire tes MP (lien Messages privés en haut à droite) !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut J'y suis arrivé !
    Bonjour Fraoustin,

    Merci ! J'ai finalement réussi à diriger le contenu sur les bonnes pages.
    J'ai une question quand même, s'il est possible d'y répondre: J'ai 4 pages XSL affectées à un document XML.

    D'après ce que je comprends, je dois mettre des liens du type qui suit dans le haut de ma page XML, :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml-stylesheet type="text/xsl" href="page1.xsl"?>
    <?xml-stylesheet type="text/xsl" href="page2.xsl"?>
    <?xml-stylesheet type="text/xsl" href="page3.xsl"?>
    <?xml-stylesheet type="text/xsl" href="page4.xsl"?>
    Une fois sur le Web, je sais que c'est la page XML que je dois appeler. Mais si je veux appeler la page3.xsl comment je fais ?
    Du même coup, je comprendrais peut-être comment doit s'appeler le lien qui me mène de la page1.xsl à la page2.xsl?

    Merci d'avance !

Discussions similaires

  1. [XSLT] comment afficher toutes les données d'un fichier xml ?
    Par bwwilly dans le forum XSL/XSLT/XPATH
    Réponses: 19
    Dernier message: 27/06/2007, 17h21
  2. [JFileChooser] Afficher seulement les répertoires
    Par Cyborg289 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 04/09/2005, 16h45
  3. Réponses: 2
    Dernier message: 23/11/2003, 19h44

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