Bonjour

Je débute en PHP pour faire une extraction d'un fichier XML.
Je me suis inspiré du tutorial de Stephane Ligoza http://jerome.developpez.com/xmlxsl/xpath/
Je bute sur un problème de selection des éléments d'après leur contenu (ils n'ont pas d'attribut)

J'y arrive avec le code PHP suivant mais
- sur un nombre de données important je trouve pas que cela soit optimisé
- si mes données ne sont pas ordonnées je n'obtiens pas les bonnes valeurs et le rajout d'un test if va m'alourdir encore le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$query = "//*[starts-with(name(),'CODE')]"; 
$selected = $xpath->query($query); 
$K=0; 
foreach ($selected as $code) { 
  $ident='XA'; 
  $posstr=strpos($code->nodeValue,$ident); 
if (!($posstr === false)){ 
  if ($posstr==0) { 
    $Ident[$K] = $code->nodeValue; 
    $Prix[$K] = $code->nextSibling->nextSibling->nodeValue; 
    $K++; 
  } 
} 
}
Voici ma structure
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
<AAA> 
<XXX> 
<DDD> 
<CODE>XAFT</CODE> 
<NAME>MON NOM</NAME> 
<PRIX>100</PRIX> 
</DDD> 
 
<DDD> 
<CODE>XAGT</CODE> 
<NAME>PLUS CHER</NAME> 
<PRIX>120</PRIX> 
</DDD> 
 
<DDD> 
<CODE>XAUT</CODE> 
<PRIX>80</PRIX> 
<NAME>MOINS CHER</NAME> 
</DDD> 
 
<DDD> 
<CODE>YBUT</CODE> 
<PRIX>200</PRIX> 
<NAME>DESORDONNE</NAME> 
</DDD> 
 
<DDD> 
<CODE>YAFT</CODE> 
<PRIX>220</PRIX> 
<NAME>ORDONNE</NAME> 
</DDD> 
</XXX> 
</AAA>
Je pense que je n'utilise pas la bonne expression pour mon extraction

Quelle expression XPATH me permettrait d'extraire les éléments CODE qui débute par 'XA' et récupérer les informations des éléments frères associé (prix)

Merci de votre aide