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] Détecter qu'une balise n'existe pas ou est vide [FAQ]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut [XSLT] Détecter qu'une balise n'existe pas ou est vide
    Bonjour à tous et bonnes fêtes de fin d'années

    Ne connaissant pas beaucoup xsl, j'aurais quelques questions sans doute de débutant.

    J'aimerais faire un système de templates en me basant sur xml, xsl, et la librairie dom et xsl de php.

    Exemple d'un fichier xml que je pourrais avoir pour un forum, c'est juste pour l'exemple.
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <ligne>
    	<etat></etat>
    	<sujet>
    		<titre></titre>
    		<lien_page></lien_page>
    		<date></date>
    	</sujet>
    	<auteur>
    		<id></id>
    		<pseudo></pseudo>
    	</auteur>
    	<reponse></reponse>
    	<affichage></affichage>
    	<dernier_post>
    		<id></id>
    		<pseudo></pseudo>
    		<date></date>
    	</dernier_post>
    	<checkbox></checkbox>
    <ligne>

    Certains attributs seront facultatifs, dans cet exemple <checkbox></checkbox> l'est.

    Ce que voudrais de prime abord savoir avant de me lancer là dedans.

    Est-ce qu'avec xsl, je pourrais m'arranger que si donc <checkbox></checkbox> n'est pas renseigné(ou à la limite est une valeur vide), il ne s'occupe pas(ne prenne pas en compte) ces balises ?

  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
    en gros si la balise <checkbox> n'existe pas tu ne veux pas la traiter, bon alors ton problème est simple.
    Dans ton xsl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:template match="checkbox">
    </xsl:template>
    Si checkbox n'existe pas xsl n'utilisera jamais le code du template checkbox

    sinon une réponse un peu plus code basique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:if test=".//checkbox = true()">
     
    </xsl:if>
    Au faite bonne fête à toi aussi

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Merci

    Je profite de ce sujet car j'ai autre problème.

    Je souhaite créer les href de mes liens dans mon xsl, seulement le signe = pose problème, j'ai trouvé une soultion en utilisant concat.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <td>
        <a>
    	<xsl:attribute name="href">
    	<xsl:value-of select="concat('forum.php?sujet', '=') "/>
    		<xsl:value-of select="ligne/sujet"/>
    		<xsl:value-of select="concat('&amp;id', '=') "/>
    		<xsl:value-of select="ligne/id"/>
    	</xsl:attribute>
    	<xsl:value-of select="sujet"/>
        </a>
    </td>

    Si je met
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="forum.php?sujet=" />
    J'ai une erreur
    Error loading stylesheet: XPath parse failure: illegal character found:

    Comment fat-on pour passer le = sans utiliser concat ?

  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
    il faudrait peut être que utilise l'unicode du signe égal un peu comme pour < qui donne &#60;

  5. #5
    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
    il faudrait peut être que utilise l'unicode du signe égal un peu comme pour < qui donne

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    J'ai testé avec & #061; mais erreur identique, tant pis, je vais en rester au concat.

    Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/07/2009, 12h52
  2. Problème si une balise n'existe pas
    Par SouCaline dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 25/06/2006, 15h26
  3. Réponses: 3
    Dernier message: 09/05/2006, 18h21
  4. [XSLT] - Comment selectionner une balise avec un nom variable ?
    Par bchabot dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2006, 10h59
  5. [xslt][php] exclure une balise
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2006, 10h38

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