Bonjour,

J'essais de naviguer dans une NodeList avec XPath. Je bute sur un problème qui m'arrache les cheveux :

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
 
 
Nodes := SourceXML.SelectNodes(//pictos/picto); //Requete Xpath - OK
 
EditInfo.Text := IntToStr(Nodes.length); //J'ai 11 nodes - OK
 
//j'affiche le tout pour verifier - OK
 
For i:=0 To nodes.length-1  Do
Begin
    MemoXML.Lines.Add(Nodes.item[i].xml);
End;
 
//Maintenant j'essais de récupérer la valeur d'une
//Node spécifique (ex: la node '5') dans ma node list
//Là ca coince ??
 
NodeAttrib := Nodes.item[5].selectSingleNode('//lon'); //Pas bon ??
MemoXML.Lines.Add(NodeAttrib.text);
Cette commande me renvoi toujours la valeur de la node '0'
alors que je pense être positionné dans '5' ?? Ca me semble si logique ?
Cela réagit comme si je faisait une requete sur tout le document ?

Pourquoi ca ne fonctionne pas ? Dans le tuto de BIG, il fait une chose similaire (dans une boucle... c'est ma prochaine étape) et ca fonctionne ?

http://big.developpez.com/delphi/xml/msxml/#LIV

Pouvez vous m'aider ?

voici un exemple de mon XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<pictos>
<picto>
  <id>P1</id> 
  <lon>5.69172</lon> 
  <lat>44.33424</lat> 
   </picto>
<picto>
  <id>P2</id> 
  <lon>-1.37379</lon> 
  <lat>43.08170</lat> 
  </picto>
</pictos>