Classe xml ultra lite

Description

Ce code a été créé lorsque xterminhate (du site) a développé sa librairie xml. J'avais fait à l'époque quelques test sur les performance de sa librairie, et je dois dire que j'avais été plutot surpris (sur un fichier de 30Mo, l'ouverture et l'enregistrement dans un aute fichier m'avais pris 1h43 me semble t il). Entre temps quelques améliorations de son algo lui a permis de multiplier par 5 les performances :)
J'ai donc recodé rapidement sans utilisation de la stl les fonctions d'ouverture, d'enregistrements, juste pour comparer. Ce code n'est certainement pas de bonne qualité (fait très rapidement) et ne se veut pas meilleurs que le code d'xterminhate (http://www.cppfrance.com/codes/MINXL-MINIMALIST-XML-LIBRARY-GENERATEUR-ANALYSEUR-TRAITEMENT-FLUX_31462.aspx), mais la différence est flagrante. Etant retombé dernierement sur ce code, je lui ai rajouté quelques fonctions de base, recherche d'une clef, attribution de valeur etc ...

sur le même centrino (1.6Ghz) et un fichier de 100Mo environ (+ de 2,500,000) de clef, ce code ne necessite que 7 secondes pour ouvrir, rechercher une clef( la toute derniere pour etre dans le pire des cas) et l'enregistrer dans un autre fichier.
Si cette librairie s'avere avoir une valeur quelquonque, je lui ajouterai les fonctions qui lui manque. A vous de me dire ..

juste un detail : le nom de la classe est identique à celle d'xtermihate, je manquais d'imagination quand je l'ai ecrite.
Les algos ne sont probablement pas encore optimisé, en particulier celui de recherche. Si vous avez des idées, je serai ravis d'en discuter.

qu'en pensez vous ?

Source / Exemple :


#include "MyXml.h" 

int main() 
{
t_xml_node * mykey = new t_xml_node("cocoon.xml") ;
t_xml_node * key = mykey->GetNode("ma_clef") ; 
mykey->build_to_file("cocoon2.xml") ;

if(key)
printf("montant : %s",key->value) ; 
delete mykey ; 
	
return 0 ; 
}

Conclusion :


Il existe d'autres fonctions comme GetValue(char * name) pour rechercher simplement une clef et retourner sa valeur.
Il y a aussi bcp d'autres choses à coder, mais la n'éais pas le but à l'origine. Je le ferai si ca en vaut la peinne.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.