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