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] Comparaison de XML / test d'existence


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Par défaut [XSLT] Comparaison de XML / test d'existence
    Bonjour,

    J'ai un petit soucis technique.
    J'ai un XSL qui peut lire deux type de XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <NODE1>
        <NODE2  MACHIN1='' MACHIN2='Pipololeclown'></NODE2>
    </NODE1>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <NODE1>
        <NODE11>
             <MACHIN2 NAME='Pipoleclown'></MACHIN2>
             <MACHIN2 NAME='Bozoleclown'></MACHIN2>
             <MACHIN2 NAME='Pirloui'></MACHIN2>
        </NODE11>
    </NODE1>
    je cherche à faire quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:when test="on a le premier fichier">
    ...
    </xsl:when>
    <xsl:otherwise>
    </xsl:otherwise>
    Comment faire pour identifier que je suis dans un fichier ou dans un autre?

    J'ai essayé en utilisants contains('nomFichier', $variableDuFichier)
    mais ça ne fonctionne pas.

    Avez vous des idées?

    Merci d'avance.
    Amicalement
    Gojira

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    si je comprend bien, le noeud root n'est pas le même pour chacun des fichiers, dans ce cas, il te suffit de tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ancestor-or-self::NOEUD_ROOT
    si le noeud root existe, alors tu es dans le doc associé...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    ou peut être simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:when test="/NODE1/NODE2">je suis ds 1
    </xsl:when>
    <xsl:otherwise>je suis ds 2
    </xsl:otherwise>
    .....

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    +1 valal... j'ai les neurones qui surchaufes XD
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    c plutot moi qui m'

  6. #6
    Membre confirmé Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Par défaut
    Merci beaucoup pour vos réponse...
    Mais j'ai une erreur car parfois je peux être dans une autre arborescence

    EN fait mon problème est finalement plus complexe.
    JE vais devoir donner un exemple plus parlant mais plus long/

    voilà un XML de sauvegarde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Review Id='truc10'>
      <Perimeter First_Name='bozo' Name='leclown' Date='31022099' Job='Developpeur' Project='DTC'/>
      <Reference Reference='EEEFFFFZZZZ' Reference_Detail='EEEfffffffff'/>
      <ReviewType
      </Perimeter>
    </Review>
    le template.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
      <Review Name='Review Input Form'>
        <Perimeter Name='Perimeter'>
          <Jobs Name='Job'>
    	<Job Name='Developpeur' Template='Y'/>
    	<Job Name='Schtroumpfe' Template='Y'/>
          </Jobs>
          <Projects Name='Project'>
    	<Project Name='Beat Gargamel'/>
    	<Project Name='Program Tetris'/>
          </Projects>
        </Perimeter>
        <Prout Name='Prout'>
          <Types Name='Public'>
    	<Type Name='Oui' />
    	<Type Name='Non'  />
          </Types>
          <Types Name='Gaz'>
            <Type Name='sapu'/>
    	<Type Name='sadobe' />
          </Types>
          <Types Name='Bruit'>
    	<Type Name='silencieux'/>
    	<Type Name='canon'/>
          </Types>
        </Prout>
       </Review>
    mon code XSL est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <xsl:template match="Job | Project | Type">
      <xsl:variable name="OptionValue"><xsl:value-of select="@Name"/></xsl:variable>
      <xsl:choose>
     
    <!-- c'est a dire qu on met les options dans les combos par defaut -->
        <xsl:when test="ici on teste que l'on est bien avec le fichier template.xml ">
          <option value="{$OptionValue}"><xsl:value-of select="$OptionValue"/></option>
        </xsl:when>
        <xsl:otherwise>
    <!-- si on est avec un autre fichier, on traite les paramètres -->
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
    si je fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:when test="/NODE1/NODE2">je suis ds 1
    </xsl:when>
    <xsl:otherwise>je suis ds 2
    </xsl:otherwise>
    j'ai une erreur ...
    ça ne rentre pas dans la première boucle et je suis dans le otherwise à chaque fois.

    Quelle pourrait être une solution?
    Car il y en a des tonnes je suis sûr.

    J'ai essayer contains('template',name($InputFile))=true
    mais ça ne marche pas non plus.

    Merci beaucoup pour votre aide.
    En plus ça me permet d'apprendre et d'aller plus loin dans le XSL.
    Et ça... ça n'a pas de prix.
    Merci.

Discussions similaires

  1. [XSLT] Comparaison/Test de "structure" XML
    Par lalalallal dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/11/2010, 10h37
  2. Tableau XML - test existance de ligne suivante
    Par Alaster dans le forum iReport
    Réponses: 3
    Dernier message: 10/12/2009, 12h01
  3. [XSLT] Test d'existence de variable
    Par norea dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 03/09/2009, 09h41
  4. [XSLT] Comparaison 2 documents XML?
    Par Marian83 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 24/04/2009, 15h55
  5. [XML] Teste si un attribut existe
    Par jbrasselet dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 04/07/2007, 12h55

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