As tu vérifié le contenu de ta grappe XML construite à la mano ? Pour cela, un simple test pour vérifier le contenu :
Sinon, je te conseille d'utiliser des noms de variables bien distincts correspondant aux éléments de ta grappe XML. Voilà le code que j'aurai tapé moi pour construire la grappe XML à la mano :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| var
GENXML: IXMLCursor;
TYPEGEN: IXMLCursor;
LSTID: IXMLCursor;
ID: IXMLCursor;
res: IXMLCursor;
begin
GENXML := TXMLCursor.Create;
GENXML.AppendChild('GENXML', '');
TYPEGEN := GENXML.AppendChild('TYPEGEN', '1');
LSTID := GENXML.AppendChild('LSTID', '1');
ID := LSTID.AppendChild('ID', 16');
ID := LSTID.AppendChild('ID', 1');
res := GENXML.Select('LSTID[ID=''1'']');
// ou GENXML.Select('/GENXML/LSTID[ID=''1'']');
end; |
Je pense que ce qui ne fonctionne pas dans ton code c'est la ligne :
currentNode := currentNode.AppendChild('LSTID', '');
Anyway, le code que je t'ai fournis devrait correctement fonctionné. De plus, pas besoin de libérer les objects, car il y a un compteur de référence qui se charge de cela. XMLCursor c'est top cool !
A+
Partager