Bonjour,
supposons le fichier xml suivant :

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
 
<root>
   <File name="nom1">
       <TECHSET type ="max">
          <TECH id='id1' value="32"/>
          <TECH id='id2' value="Coucou"/>
          <TECH id='id3' value="23.2657"/>
       </TECHSET>
       <TECHSET type="min">
          <TECH id='id1' value="10"/>
          <TECH id='id2' value="Coucou"/>
          <TECH id='id3' value="21.2657"/>
      </TECHSET>
   </File>
 
   <File name='nom2'>
 
       <TECHSET type ="max">
          <TECH id='id1' value="56"/>
          <TECH id='id2' value="Hello"/>
          <TECH id='id3' value="29.2657"/>
       </TECHSET>
       <TECHSET type="min">
          <TECH id='id1' value="30"/>
          <TECH id='id2' value="Hello"/>
          <TECH id='id3' value="11.2657"/>
       </TECHSET>
  </File>
</root>

Avec un nombre de TECH potentiellement infinie, et un nombre de File potentiellement infinie.

Je voudrais récupérer tous les noeuds Files, dont les TECH répondent à certain critères.

Par exemple, que pour id = id1, value doit inferieur à 40, et que pour id=id2, value doit être égale à Hello.

Mais je ne vois pas du comment faire.
Je pensais à quelque chose du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
//File[//TECH[@id='id1' & value<40] & //TECH[@id='id2' & value='Hello']]
Mais si cette expression compile bien, le résultat n'est par contre pas le bon.
Auriez vous une idée de comment résoudre ceci ?