TXMLWriter - Exemples
| TXMLWriter = class (TObject) | Interface de TXMLWriter | Exemples de TXMLWriter |
uses XMLDirect, QubesUsers;
// Lecture de tous les utilisateurs
var lstUsers:=TStrings.Create;
GetAllUsersHavingFunctions(lstUsers, '');
// Création d'un XML qui contient les users.
// Chaque user est dans une noeud user avec un attribut login
// Le nom, le prénom et les fonctions sont dans des sous-noeuds
var xml:=TXMLWriter.Create('users');
for var i:=0 to lstUsers.Count-1 do begin
// On crée un noeud 'user' pour chaque user
xml.AddNode('user');
// Ce noeud a un attribut login
var login := lstUsers[i];
xml.Attributes['login'] := login;
// On ajoute 2 sous-noeuds 'nom' et 'prenom'
var user:=TUser.Connect(login);
xml.AddClosedNode('nom', user.LastName);
xml.AddClosedNode('prenom', user.FirstName);
// On ajoute autant de noeuds 'function' qu'il y a de fonctions
xml.AddNode('functions');
for var j := 0 to user.FunctionCount - 1 do
xml.AddClosedNode('function', user.Function[j]);
xml.CloseNode('functions'); // sécurité : on vérifie qu'on ferme bien le noeud "functions"
// on ajoute la signature html des mails de l'utilisateur
// dans un noeud CDATA pour éviter d'encoder les caractères "<", ">", "&"
xml.AddClosedDataNode('signature', '<html><body>' + HTMLify(user.FirstName + ' ' + user.LastName) + '</body></html>');
// On ferme le noeud 'user', en le précisant par sécurité
xml.CloseNode('user');
end;
PrintLn(xml.AsXMLUTF8);
//<?xml version="1.0" encoding="UTF-8"?>
//<users>
// <user login="eg">
// <nom>G</nom>
// <prenom>Eric</prenom>
// <functions>
// <function>Employé</function>
// </functions>
// <signature><![CDATA[<html><body>Eric G</body></html>]]></signature>
// </user>
// <user login="ph">
// <nom>H</nom>
// <prenom>Philippe</prenom>
// <functions>
// <function>Consultant MES</function>
// <function>Manager</function>
// </functions>
// <signature><![CDATA[<html><body>Philippe H</body></html>]]></signature>
// </user>
//</users>
// Lecture de tous les utilisateurs
var lstUsers:=TStrings.Create;
GetAllUsersHavingFunctions(lstUsers, '');
// Création d'un XML qui contient les users.
// Chaque user est dans une noeud user avec un attribut login
// Le nom, le prénom et les fonctions sont dans des sous-noeuds
var xml:=TXMLWriter.Create('users');
for var i:=0 to lstUsers.Count-1 do begin
// On crée un noeud 'user' pour chaque user
xml.AddNode('user');
// Ce noeud a un attribut login
var login := lstUsers[i];
xml.Attributes['login'] := login;
// On ajoute 2 sous-noeuds 'nom' et 'prenom'
var user:=TUser.Connect(login);
xml.AddClosedNode('nom', user.LastName);
xml.AddClosedNode('prenom', user.FirstName);
// On ajoute autant de noeuds 'function' qu'il y a de fonctions
xml.AddNode('functions');
for var j := 0 to user.FunctionCount - 1 do
xml.AddClosedNode('function', user.Function[j]);
xml.CloseNode('functions'); // sécurité : on vérifie qu'on ferme bien le noeud "functions"
// on ajoute la signature html des mails de l'utilisateur
// dans un noeud CDATA pour éviter d'encoder les caractères "<", ">", "&"
xml.AddClosedDataNode('signature', '<html><body>' + HTMLify(user.FirstName + ' ' + user.LastName) + '</body></html>');
// On ferme le noeud 'user', en le précisant par sécurité
xml.CloseNode('user');
end;
PrintLn(xml.AsXMLUTF8);
//<?xml version="1.0" encoding="UTF-8"?>
//<users>
// <user login="eg">
// <nom>G</nom>
// <prenom>Eric</prenom>
// <functions>
// <function>Employé</function>
// </functions>
// <signature><![CDATA[<html><body>Eric G</body></html>]]></signature>
// </user>
// <user login="ph">
// <nom>H</nom>
// <prenom>Philippe</prenom>
// <functions>
// <function>Consultant MES</function>
// <function>Manager</function>
// </functions>
// <signature><![CDATA[<html><body>Philippe H</body></html>]]></signature>
// </user>
//</users>