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] traiter le premier élément correspondant à une sélection


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Développeur d'application
    Inscrit en
    Août 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur d'application

    Informations forums :
    Inscription : Août 2006
    Messages : 21
    Points : 21
    Points
    21
    Par défaut [XSLT] traiter le premier élément correspondant à une sélection
    Bonjour à tous,
    Voici le fichier xml que je dois analyser :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <package>
          <mapping_info>
               <machine type="xs:string">ma machine</machine>
          	   <provider type="xs:string">mon provider</provider>
          </mapping_info>
          <interfdiag>
          	    <measure  type="structure">
                    <value type="exp1D" path="mesure/value"></value>
          		<abserror type="exp1D" path="mesure/abserror"></abserror>
          	    </measure>
          </interfdiag>
          <ironmodel>
          	    <magnetise   type="structure">
          		 <mr type="structure">
    			<value type="exp1D" path="magnetise/mr/value"></value>
    			<abserror type="exp1D" path="magnetise/mr/abserror"></abserror>
    		 </mr>
          		 <mz type="structure">
    			<value type="exp1D" path="magnetise/mz/value"></value>
          			<abserror type="exp1D" path="magnetise/mz/abserror"></abserror>
          		 </mz>
          	     </magnetise>
          </ironmodel>
           <msediag>
          	     <matrix  type="structure">
          			<value type="exp1D" path="mesure/value"></value>
          			<abserror type="exp1D" path="mesure/abserror"></abserror>
          	     </matrix>
          </msediag>
          <polardiag>
          	     <signal  type="structure">
          			<value type="exp1D" path="mesure/value"></value>
          			<abserror type="exp1D" path="mesure/abserror"></abserror>
          	     </signal>
          </polardiag>
    </package>
    Ne me dites pas qu'il est mal fichu, son contenu ne dépend pas de moi!

    Je voudrais ne traiter que la première balise de niveau 4 dont le type est 'exp1D' (c'est-à-dire dans l'exemple interfdiag/measure/value). Sachant bien sûr que je ne connais pas à priori le nom des balises (ça ce serait trop facile!), qu'il peut y avoir plusieurs éléments de 3e niveau dans les éléments de 2e niveau (je n'en ai mis qu'un pour simplifier, c'est déjà assez compliqué comme ça!), et qu'il peut y avoir des balises 'value' dont le type n'est pas 'exp1D'.
    Or quelles que soient les solutions que j'ai essayée, mon xslt traite les éléments interfdiag/measure/value, msediag/matrix/value et polardiag/signal/value.

    Est-ce que l'un(e) de vous aurais une idée?

    Jacqueline

    "Si il y a un remède, à quoi bon le mécontentement ?
    Si il n'y a pas de remède, à quoi bon le mécontentement ?"
    Shantideva, philosophe boudhiste

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    A chaque fois que l'on rajoute [1] à une sélection de noeuds sous XPath, on ne conserve que le premier de la sélection.

    Si vous voulez une profondeur stricte, utilisez quelque chose comme */*/*[@type = 'exp1D'][1]

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/10/2006, 14h55
  2. [VB.NET]Insérer un blanc en premier élément d'une combo
    Par Franck2mars dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/06/2006, 12h00
  3. Sélectionner le premier élément d'une ComboBox
    Par deubal dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/11/2005, 10h32
  4. Réponses: 2
    Dernier message: 11/01/2005, 14h10

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