Lamarmottedu73
Messages postés19Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention14 mai 2009
-
31 oct. 2007 à 09:02
Lamarmottedu73
Messages postés19Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention14 mai 2009
-
31 oct. 2007 à 15:44
Bonjour tlm, j'ai un problème avec Delphi et le XML. J'utilise un TXMLDocument dans un thread qui scrute différent fichier. Le problème intervien sur un balise du fichier XML.
Pour accéder à ComponentList je fait un : XMLDocument.ChildNodes.Nodes['ComponentList'];
La question est comment faut-il procéder pour accèder à Component qui possède l'ID 015-077-666-000, sachant que l'ordre peut changer donc First ou Last ne peuvent fonctionner.
Merci pour votre aide car je bloc pas mal, c'est la première fois que je bosse avec du XML.
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 20093 31 oct. 2007 à 09:30
salut,
il te faut parcourir tout la liste de noeud et tester l'attribut. il n'y pas d'autre moyen d'accéder un noeud selon sa valeur d'attribut.
donc ça te donne un truc genre (pas testé, je suis sur j2me en ce moment):
function chercherNoeudParID(idToFound: string) : ixmlnode;
var
parent : ixmlnode;
begin
result := nil;
parent := XMLDocument.ChildNodes.Nodes['ComponentList'];
for i := 0 to parent.childnodes.count-1 do begin
noeud = parent.getnode(i);
if noeud.HasAttribute("id") then begin
if noeud.Attributes["id"] = idToFound then begin¨
result = noeud;
exit;
end;
end;
end;
end;
si tu choisit le format du xml et que tu as besoin de faire fréquemment
des sélections selon l'id, envisage d'utiliser l'ID comme nom de noeud.
ceci te opermet de faire directement un getnode(idToFound)
bon code,
Loda
PS: l'xml c'est pas super intuitif au début, mais après quelques utilisation, tu ne sait plus comment tu faisait avant :-)
<hr size ="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Lamarmottedu73
Messages postés19Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention14 mai 2009 31 oct. 2007 à 15:44
En fait je ne peut pas modifier les fichiers XML, ils sont généré par une autre appli donc je garde la première méthode. Par contre je garde l'astuce pour plus tard .