Accueil > Forum > > > > Comment savoir si un Node XML existe
Comment savoir si un Node XML existe
mercredi 14 juin 2006 à 15:46:14 |
Comment savoir si un Node XML existe

fjohnny
|
Bonjour,
Voilà sur ma version de delphi (7) le composant TXMLDocument n'existe pas. N'ayant rien touvé sur le net, je suis en train de développer un composant qui pourrait accomplir au moins les fonctions basique sur le XML : Lecture, écriture, existence d'un noeud etc... Pour l'instant j'arrive plus ou moins à savoir si un noeud existe ou pas. Mais ma fonction (je le sais bien) est très mal developpé. Ca fait plusieurs jours que je planche dessus, mais j'arrive pas à avancer. Alors si vous avez des idées des suggestions, des pistes.. je suis preneur.
Explications de la fonction :
Je pars du principe que le fichier XML trace une arborescence comme dans l'explorateur et par conséquence on peut la nommer de la même façon avec un chemin ou chaque balise serait séparé par des '\'.
Pour éviter d'alourdir mon post je ne mettrais pas les fonctions annexes, juste une petite explication sur celles-ci:
LireFichierTexte : Renvoie un TStringList contenant le fichier XML dans son entier fFichierXML : Propriété du composant (que je suis en train de developpe) qui contient sous la forme d'un String le chemin du fichier XML DecomposeChemin : Met dans un TStringList (Ligne/ligne) les balises recontré dans le chemin. Contienttexte: C'est juste une encapsulation de la fonction PosEx pour qu'elle renvoie un booleen.
Function TJTXML.ExisteNode (Chemin:String): Boolean; Var Temp:TStringList; {Sera utiliser pour charger le fichier XML en mémoire} Balises : TStringList; {Va servir à stocker le chemin élément par élément} i,j,l,m: Integer; {l : Début intervalle du Node courant m : Fin Intervalle du Node courant i et j sont de variable pour les boucles FOR} Trouve: Boolean; {Indiquera si on a trouvé le commencement du Node courant Vérification qui est utile si le fichier contient une erreur et qu'il y a la balise de fin sans la balise de début!} begin Try Try Result:= False; //Initialisation du résultat if notFileExists(fFichierXML) then Exit; {Ca risque pas d'exister !} {Chargement et traitement du fichier} Temp := LireFichierTexte(fFichierXML); {Découpage du chemin} Balises:=DecomposeChemin(Chemin); l:=0; m:=Temp.Count-1;{Positionnement de Départ} For j:=0 to Balises.Count -1 do begin {Recherche du 1er Node ensuite à l'intérieur de cette intervalle délimité par celui-ci on cherche le deuxième Node etc... A la fin on vérifie que c'est le dernier et si il est trouvé, c'est que le chemin existe sinon il a été positionné à False au début de la procédure } Trouve:=False; For i:=l to m do begin if ContientTexte (LowerCase (Temp.Strings[i]),LowerCase ('<'+Balises.Strings [j]+'>')) then begin Trouve:=True; l:=i; //Position de la balise nième end; if (Trouve and ContientTexte (LowerCase (Temp.Strings[i]),LowerCase ('</'+Balises.Strings [j]+'>'))) then begin if j=Balises.Count-1 then Result:=True; {Si c'est la dernière tout est trouvé et on va s'arrêter là} m:=i;Break; //Position de la fermeture de la balise nième end; end; If not Trouve then Break; {Si la néime balise n'a pas été trouvé ne pas chercher la n+1 !} end; //End du For j Except Result:= False; end; Finally Temp.free; Balises.free; //Libération des TStringList end; end;
Merci d'avance de votre aide.
fjohnny
|
|
Cette discussion est classée dans : fichier, end, xml, chemin, node
Répondre à ce message
Sujets en rapport avec ce message
afficher une image dans une zone Timage [ par jeanjeandada ]
Bonjour, Je suis débutant sur Delphi mais j'ai regardé pas mal de tutorial...Voici mon probléme :Je souhaite afficher une image dans une zone Timage s
Interface Delphi 6 et BDD HF7 (windev) [ par simplyDje ]
Bonjour, Je suis actuellement en train de travailler sur un projet devant réaliser l'interface entre une base de donnée HF7 (sous windev) et l'utili
XML AVEC DELPHI 5 [ par guy jeuniaux ]
Bonjour,Je viens encore une fois solliciter votre aide. J'ai besoin de récupérer une valeur dans un fichier XML.J'ai cherché pendant des heures sur le
Lecture fichier XML vers une ou plusieurs classes [ par furax13 ]
Soit le fichier xml suivant : 0 <coefficient nom=
Syntaxe XML [ par grandyaka54 ]
Bonjour, Je suis en train de développer une petite application sur Delphi. Je sais lire et écrire dans un fichier xml en utilisant le composant IXMLDo
faire glisser un fichier sur une icone en recuperant le chemin [ par shell13010 ]
Bonjour a tous,J'aimerais si c'est possible de recuperer le chemin d'un fichier en le faisant glisser sur l'icone de mon programme pour qu'il puisse r
Test présence noeud XML [ par didou2dek ]
Bonjour à tous, je suis en train de coder une appli me permettant de recuperer des valeurs d'un fichier XML, cependant je bloque sur une fonction que
Error E/S 32 sur ecriture et suppresion [ par te56350 ]
slt tt le mondej'Ai besoin d'une solution pour mon projet en cour SVPMon projet gère des comptes utilisAteurs Et qu'An j'enregistre des comptes çA fon
Génération d'un fichier XML avec Delphi 2009 [ par littlebolide ]
Bonjour,Par la force des choses je dois me remettre dans la programmation (Delphi 2009) pour ma société (ventes de voitures de collection) dans le cad
Parcours d'un fichier XML [ par TrustNoOne ]
Bonjour à tous, J'ai un petit soucis pour la lecture d'un fichier XML. J'ai effectué des modifs en long en large en travers mais rien n'y fait. Après
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|