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] Petit problème de selection d'un noeud


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut [XSL] Petit problème de selection d'un noeud
    Bonjour,

    Dans ma feuille XSL, je dois déterminer la présence d'un élément XML qui remplit trois conditions, au niveau de ces enfants.

    Un petit extrait de ma feuille
    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
     
    [...]
    <MODULE>
    	<NUMMOD>60</NUMMOD>
    	<DONMOD DATCLOT="122001" DUREEEX="12"/>
    	<DONMOD DATCLOT="122002" DUREEEX="12"/>
    	<DONMOD DATCLOT="122003" DUREEEX="12"/>
    </MODULE>
    <MODULE>
    	<NUMMOD>62</NUMMOD>
    	<DONMOD DATCLOT="122001" DUREEEX="12"/>
    	<DONMOD DATCLOT="122002" DUREEEX="12"/>
    	<DONMOD DATCLOT="122003" DUREEEX="12"/>
    </MODULE>
    <MODULE>
    	<NUMMOD>63</NUMMOD>
    	<DONMOD DATCLOT="122002" DUREEEX="12"/>
    	<DONMOD DATCLOT="122003" DUREEEX="12"/>
    </MODULE>
    [...]
    Je précise que l'élément MODULE n'est pas à la racine du document.
    En fait, je dois vérifier le contenu de NUMMOD, de DATCLOT et de DUREEEX, et compter le nombre de résultats issus du test (0 ou 1).

    Un petit extrait de ma feuille 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
     
    <xsl:template name="genModule">
    	<xsl:param name="node"/>
    	<xsl:param name="classe"/>
    	<xsl:param name="module"/>
     
    	<xsl:if test="string-length($node) > 0">
    		<xsl:variable name="mod" select="concat('//NUMMOD=',$module,'/..DONMOD[@DATCLOT=',substring($node,1,6),' and @DUREEEX=',substring($node,7,2),']')" />
    		<xsl:choose>
    			<xsl:when test="count($mod) > 0">
    				<td class="{$classe}" align="center">X</td>
    			</xsl:when>
    			<xsl:otherwise>
    				<td class="{$classe}" align="center"> </td>
    			</xsl:otherwise>
    		</xsl:choose>
    		<xsl:call-template name="genModule">
    			<xsl:with-param name="node" select="substring($node,9)" />
    			<xsl:with-param name="classe" select="$classe" />
    			<xsl:with-param name="module" select="$module" />
    		</xsl:call-template>
    	</xsl:if>
    </xsl:template>
    La ligne qui me pose problème est celle où je calcule la variable $mod.

    Quelqu'un voit-il une solution à mon problème ou pourrait-il me mettre sur la piste ?

    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    il y a deux problèmes :
    - tu ne peux pas évaluer une expression XPath à partir d'une chaîne
    - ton expression XPath est mal rédigée

    Une définition plus correcte de $mod serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="mod" select="//MODULE[NUMMOD=$module]/DONMOD[@DATCLOT=substring($node,1,6) and @DUREEEX=substring($node,7,2)]" />
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup pour ces précisions, mon test semble marcher maintenant !

    Il faut dire que XSL n'est pas conçu à la base pour manipuler des éléments XML mal ordonnés et mal formatés.

    Merci encore !

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

Discussions similaires

  1. [XSL-FO] Petit problème avec l'affichage de mon background-image
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 10/09/2009, 12h56
  2. [XSL-FO] Un petit problème avec fo:inline
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 10/07/2007, 17h27
  3. [XSL~FO] zone cliquable & image, petit problème.
    Par dhakkta dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 14/02/2007, 15h10
  4. [MySQL] Petit problème de SELECT
    Par Comawhite dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/12/2006, 10h09
  5. [débutant] petit problème de selection...
    Par Avalon dans le forum Access
    Réponses: 5
    Dernier message: 04/01/2006, 23h33

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