1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2018
    Messages : 12
    Points : 15
    Points
    15

    Par défaut Tester l'existance d'un élément XML en XSLT

    Bonjour,
    Voici une partie de mon code XML
    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
    <scene>
     
      <figures>
     
        <cercle id="1" rayon="200.0">
          <point x="100.0" y="150.0" />
        </cercle>
     
        <triangle id="2" >
          <point x="200.0" y="300.0" />
          <point x="300.0" y="400.0" />
          <point x="200.0" y="800.0" />
        </triangle>
     
        <carre id="3" arc="2.5" />
     
        <rectangle id="4" longeur="300.0" largeur="100.2" >
          <point x="200.0" y="300.0" />
        </rectangle>
     
        <Droit id="5">
          <point x="1.0" y="3.0" />
          <point x="3.0" y="2.0" />
        </Droit>
     
      </figures>
    </scene>
    et voici ce que je fais en XSLT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:if test="/scene/figures/cercle">
    	<circle cx="{/point/@x}" cy="{/point/@y}" r="{/@rayon}"/>
            </xsl:if>
    mais ça me donne pas le résultat que je cherche
    Résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:link="http://www.w3.org/1999/xlink" width="1000" height="880">
       <circle cx="" cy="" r=""/>
    </svg>
    Comme vous voyez les attributs de la balise circle sont vide j'ai également essayé avec (<xsl:choose>) mais ça marche toujours pas
    J'apprécie énormément votre aide et mercii d'avance

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2018
    Messages : 12
    Points : 15
    Points
    15

    Par défaut

    Au fait j'ai essayé comme ça et ça a marché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:if test="/scene/figures/cercle">
    		<circle cx="{/scene/figures/cercle/point/@x}" cy="{/scene/figures/cercle/point/@y}" r="{/scene/figures/cercle/@rayon}"/>
    	</xsl:if>
    mais une fois que je rajoute <xsl:for-each> je retrouve le même problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="/scene/figures">
    	<xsl:if test="/cercle">
    		<circle cx="{/cercle/point/@x}" cy="{/cercle/point/@y}" r="{/cercle/@rayon}"/>
    	</xsl:if>
    </xsl:for-each>
    Quelqu'un peut m'expliquer pourquoi en me donnant une solution

  3. #3
    Membre chevronné
    Inscrit en
    octobre 2011
    Messages
    1 214
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 214
    Points : 2 129
    Points
    2 129

    Par défaut

    Attention au contexte ! "/point" veut dire point comme enfant direct de la racine documentaire (abstracte). Les mêmes pour autres cas.

    Citation Envoyé par poste#1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="/scene/figures">
    	<xsl:if test="/cercle">
    		<circle cx="{/cercle/point/@x}" cy="{/cercle/point/@y}" r="{/cercle/@rayon}"/>
    	</xsl:if>
    </xsl:for-each>
    devrait s'écrire comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="/scene/figures">
    	<xsl:if test="cercle">
    		<circle cx="{cercle/point/@x}" cy="{cercle/point/@y}" r="{cercle/@rayon}"/>
    	</xsl:if>
    </xsl:for-each>
    edition: j'ai oublié de corriger l'attribut r, c'est fait maintenant.

    Et puis,
    Citation Envoyé par poste#2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:if test="/scene/figures/cercle">
    	<circle cx="{/point/@x}" cy="{/point/@y}" r="{/@rayon}"/>
            </xsl:if>
    devrait s'écrire comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:if test="/scene/figures/cercle">
    	<circle cx="{/scene/figures/cercle/point/@x}" cy="{/scene/figures/cercle/point/@y}" r="{/scene/figures/cercle/@rayon}"/>
            </xsl:if>
    comme si, ou bien en fait la même, tout ça s'est placé dans le contexte de la racine abstracte du document.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2018
    Messages : 12
    Points : 15
    Points
    15

    Par défaut

    Mercii beaucoup

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

Discussions similaires

  1. Tester l'existence d'un noeud XML
    Par djedje-08 dans le forum VB.NET
    Réponses: 4
    Dernier message: 21/02/2017, 16h10
  2. [XL-2010] Tester l'existence d'un attribut XML
    Par doowy38 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2013, 14h53
  3. Tester l'existence d'un noeud XML avec JavaScript
    Par molinadiaz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/02/2012, 13h42
  4. [jQuery] Tester l'existence d'un élément HTML
    Par Tchupacabra dans le forum jQuery
    Réponses: 5
    Dernier message: 29/04/2008, 11h34
  5. Tester l'existance d'un élément d'un tableau
    Par licorne dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/06/2007, 17h04

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