Bonjour,
J'aimerais comprendre la lecture et l'écriture au format XML.
Je pars d'une donnée dans un champs Memo de ce type
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <?xml version="1.0" standalone="yes"?> <docs><datas/></docs>
le but étant d'obtenir ce genre de chose
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" standalone="yes"?> <docs><datas> <doc Tlien="0" unc="C:\xxxxx\truc.txt" name="truc.txt"/> <doc Tlien="0" unc="C:\xxxxx\andouille.xls" name="andouille.xls"/> .... </datas></docs>
Tout d'avord j'ai essayé de lire l'imformation, par exemple essayé de récupérer la valeur de unc
ou j'ai essayer de parcourrir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Noeud := XmlDoc.DocumentElement.ChildNodes['doc']; if Assigned(Noeud) then Showmessage('La valeur de ' + Noeud.NodeName + ' est de : ' + Noeud.Text )
Mais que dalle... c'est pas faute de connaitre les TTReeView mais là je comprends rien.
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 for I:= 0 to XMLDoc.DocumentElement.ChildNodes.Count - 1 do begin Node:= XMLDoc.DocumentElement.ChildNodes[I]; if Node.NodeType = ntElement then begin if Node.NodeName = 'document' then begin if Node.HasAttribute('Tlien') then begin Tlien:= Node.Attributes['Tlien']; showmessage(typelien); end; if not VarIsNull(Node.NodeValue) then begin doc:= Node.NodeValue; showmessage(doc); end; end; end; end;
un autre point :
peut-on alimenter un xml sans partir d'un fichier ? (j'ai essayé pas mal de chose mais jamais réussi)
par exemple :
Je n'ai pas réussi à alimenter mon xml autrement qu'en passant par un fichier sinon j'ai des messages d'erreur :
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 var Champ : TStringList; i : integer; begin Champ := TStringList.Create; Try Champ.Add('<?xml version="1.0" standalone="yes"?>'); Champ.Add('<docs><datas>'+ '<doc Tlien="0" unc="C:\xxxxx\truc.txt" name="truc.txt"/>'+ '<doc Tlien="0" unc="C:\xxxxx\andouille.xls" name="andouille.xls"/>'+ '</datas></docs>'); Champ.SaveToFile('c:\XXXX\essai.xml'); xmlDoc.LoadFromFile('c:\XXXX\essai.xml'); // ...
j'ai tenté cela parmis plein de chose :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // 1 xmlDoc.XML := Champ; // erreur Pas de document actif // 2 xmlDoc.XML.AddStrings(Champ); // idem // 3 for i := 0 to Champ.Count - 1 do XMLDoc.XML.Add(Champ.Strings[i]); // idem
Hier soir, j'ai failli exploser mon pc... lol, je me suis vangé sur mon jeux favoris...
Mes intérrogations ?
Comment lire mon fichier et au moins récupérer une valeur ?
Si mon fichier est remplir, comment ajouter une section
<doc Tlien="0" unc="C:\xxxxx\truc.txt" name="truc.txt"/>
à l'intérieur de <datas></datas>
Comment partir d'un champs mémo d'une base donnéespour alimenter directement un XML ?
PS : j'ai évidement lu la FAQ
Merci à vous.
Partager