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 :

problème de parametre dans select XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut problème de parametre dans select XSL
    J'ai un fichier XML et une XSL que j'utilise via PHP.
    Je passe des parametres à la feuille XSL, je les affiches et voit bien leur valeur, mais dans le select que je veux modifier il m'affiche toutes mes pages
    le code est plus parlant
    PS : j'ai fait de l'élagage pour ne garder que ce qui est utile.
    le XML
    Code xml : 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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?xml version="1.0" encoding="UTF-8"?>
    <categories>
        <cat id="accueil" label="Accueil">
            <page type="edito" background="/img/backgrounds/bg1.jpg">
                <title>
                    <![CDATA[this is edito1]]>
                </title>
                <text>
                    <![CDATA[this is the text]]>
                </text>
            </page>
            <page type="edito">
                <title>
                    <![CDATA[this is accueil edito2]]>
                </title>
                <text>
                    <![CDATA[this is the text]]>
                </text>
            </page>
            <page type="edito">
                <title>
                    <![CDATA[this is accueil edito3]]>
                </title>
                <text>
                    <![CDATA[this is the text]]>
                </text>
            </page>
        </cat>
        <cat id="carres" label="Les carrés">
            <page type="edito">
                <title>
                    <![CDATA[this is carres edito1]]>
                </title>
                <text>
                    <![CDATA[this is the text of carrés]]>
                </text>
            </page>
    		<page type="edito">
                <title>
                    <![CDATA[this is carres edito2]]>
                </title>
                <text>
                    <![CDATA[this is the text of carrés]]>
                </text>
            </page>
        </cat>
        <cat id="papeterie" label="Papeterie">
            <page type="edito">
                <title>
                    <![CDATA[this is papeterie edito1]]>
                </title>
                <text>
                    <![CDATA[this is the text of papier]]>
                </text>
            </page>
        </cat>
    </categories>

    et la XSL
    Code xsl : 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
     
    <?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" indent="yes" encoding="UTF-8"
    		doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
    		doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    		omit-xml-declaration="yes"
    		/>
     
    	<xsl:param name="catid"/>
    	<xsl:param name="pagenum"/>
     
    	<xsl:template match="/">
    		<xsl:value-of select="$catid"/>
    		<xsl:value-of select="$pagenum"/>
    		<xsl:variable name="cat" select="descendant::cat[@id=$catid]"/>
    		<html dir="ltr" lang="fr-FR">
    			<head></head>
    			<body>
    				<div id="wrapper">
    					<div id="content">
    						<xsl:apply-templates select="descendant::cat[@id=$catid]/page[$pagenum]" />
    					</div>
    				</div>
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="page">
    			<xsl:value-of select="title" />
    	</xsl:template>
    </xsl:stylesheet>
    ça merde sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:apply-templates select="descendant::cat[@id=$catid]/page[$pagenum]" />
    Et ça m'affiche toutes les pages de la categorie

    avant j'avais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:apply-templates select="descendant::cat[@id=$catid]/page" />
    cela permettait d'attaquer tous les noeuds <page> du XML
    maintenant je ne veux afficher qu'une seule page, en fonction de l'id que j'aurai passé. Mais ça ne marche pas
    pourtant si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:apply-templates select="descendant::cat[@id=$catid]/page[1]" />
    j'ai bien la page 1, si je met un 2, j'ai bien la page 2
    qu'est ce que j'ai loupé :'( :'(

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    bon j'ai du mieux
    en mettant ceci dans le select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:apply-templates select="descendant::cat[@id=$catid]/page[position()=$pagenum]" />
    mais si j'ai du code HTML dans le template, il n'est pas évalué, :'(

Discussions similaires

  1. Ajout parametre dans select
    Par Shandler dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 07/05/2008, 11h14
  2. passer un parametre dans select count
    Par esojrehcir dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/10/2007, 15h12
  3. Problème de condition dans SELECT
    Par nicocaine dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/06/2007, 15h06
  4. [XSLT] Creer des hyperlink parametres dans un xsl
    Par ld438 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/07/2006, 15h04
  5. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 21h27

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