[XSLT] traiter le premier élément correspondant à une sélection
Bonjour à tous,
Voici le fichier xml que je dois analyser :
Code:
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