[C++] Le meilleur parseur XML pour C++ (gratuit).

Le meilleur parseur XML pour C++ (gratuit). [C++] - C++ - Programmation

Marsh Posté le 20-05-2003 à 16:39:56    

Je veux parser du code XML, quelle lib gratuite me conseillez vous d'utiliser ?


---------------
L'ennemi est con : il croit que c'est nous l'ennemi, alors que c'est lui ! (Desproges)
Reply

Marsh Posté le 20-05-2003 à 16:39:56   

Reply

Marsh Posté le 20-05-2003 à 18:51:32    

Moi, pour du parsing non validant, j'utilise TinyXML. J'en suis plutot content.
http://www.grinninglizard.com/tinyxml/
Parraît de expat est pas mal aussi ...
http://expat.sourceforge.net/


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 20-05-2003 à 18:53:10    

:jap: Merci, je vais sans doute utiliser celui de visual, il vaut quoi ?


---------------
L'ennemi est con : il croit que c'est nous l'ennemi, alors que c'est lui ! (Desproges)
Reply

Marsh Posté le 21-05-2003 à 20:18:58    

Désolé, pas testé (besoin de fonctionner sous Linux ...)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-05-2003 à 21:11:02    

J ai teste un peu Tiny est assez simple et efficace.
Sinon pour Expat (tout comme Tiny) qui me parait un poil plus performant au niveau fonctions (ca me rappel le parser xml de php ds la philosophie), il marche tt les 2 sur linux ou Win et d'ailleur ils fournissent tt les 2 un maefile et une workspace suivant comem tu compiles.

Reply

Marsh Posté le 21-05-2003 à 21:13:28    

VisualC++ a écrit :

J ai teste un peu Tiny est assez simple et efficace.
Sinon pour Expat (tout comme Tiny) qui me parait un poil plus performant au niveau fonctions (ca me rappel le parser xml de php ds la philosophie), il marche tt les 2 sur linux ou Win et d'ailleur ils fournissent tt les 2 un maefile et une workspace suivant comem tu compiles.


 
Et puisque tu m'a l'air d'être la personne adéquate (pseudo), que pense tu du parser intégré à visual ?


---------------
L'ennemi est con : il croit que c'est nous l'ennemi, alors que c'est lui ! (Desproges)
Reply

Marsh Posté le 21-05-2003 à 21:16:03    

Jamais essaye desole (jusqu a avant hier le XML a part avec PHP j'en avait pas l'utilite ;)) mais il se base sur MSXML me semble.
 
Regarde sur codeguru.com y a pas mal d'exemple et de wrapper au cas ou, tu pourrais trouver des reponses (ou sinon sur le forum du site).

Reply

Marsh Posté le 22-05-2003 à 08:56:37    

Le plus complet: xerces de Apache Fondation (xerces.apache.org)
Ensuite, il y a IBM et leur API basé sur la dernière version stable d'Apache
Le dernier est la bibliotheque libxml ou xml-gnome (http://www.xmlsoft.org/)

Reply

Marsh Posté le 22-05-2003 à 11:46:43    

western a écrit :

Le plus complet: xerces de Apache Fondation (xerces.apache.org)
Ensuite, il y a IBM et leur API basé sur la dernière version stable d'Apache
Le dernier est la bibliotheque libxml ou xml-gnome (http://www.xmlsoft.org/)


 
Sous windows je précise.


---------------
L'ennemi est con : il croit que c'est nous l'ennemi, alors que c'est lui ! (Desproges)
Reply

Marsh Posté le 22-05-2003 à 14:35:26    

Tinyxml très simple en effet, et marche nickel sous VC++.
Mais là j'essai expat car tinyxml est beaucoup trop lent pour lire un gros fichier xml ... vraiment tres tres lent. Expat (les exe de tests fournis) torchent le truc en quelques secondes.
 
Donc, si c'est juste un fichier de config, etc ... de quelques Ko au plus => tinyxml
Sinon expat (c'est portable et performant).
Si tu veux du validant, alors le xml de MS.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 22-05-2003 à 14:35:26   

Reply

Marsh Posté le 22-05-2003 à 15:59:29    

HelloWorld a écrit :


Sinon expat (c'est portable et performant).
Si tu veux du validant, alors le xml de MS.
 


 
ou alors Xerces. C'est portable (et porté), très performant, et on peux valider. Il a tout pour lui.

Reply

Marsh Posté le 22-05-2003 à 16:46:20    

J'essaye MSXML pour l'instant, et la doc est tellement mal foutue que les exemple que je trouve pour charger un fichier XML font tous 3 pages.
 
Ce que je veux faire n'est pourtant pas compliqué :  
 
Lire le fichier, et récupérer les valeurs se trouvant dans les balises.
 
Normalement, au pire, 20 lignes de codes à vue de nez...
 
Un piti exemple si qq un a le temps ce serait cool.  :)


---------------
L'ennemi est con : il croit que c'est nous l'ennemi, alors que c'est lui ! (Desproges)
Reply

Marsh Posté le 22-05-2003 à 17:36:20    

HelloWorld a écrit :

Tinyxml très simple en effet, et marche nickel sous VC++.
Mais là j'essai expat car tinyxml est beaucoup trop lent pour lire un gros fichier xml ... vraiment tres tres lent. Expat (les exe de tests fournis) torchent le truc en quelques secondes.
 
Donc, si c'est juste un fichier de config, etc ... de quelques Ko au plus => tinyxml
Sinon expat (c'est portable et performant).
Si tu veux du validant, alors le xml de MS.
 


 
Je veux juste lire un fichier de config et initialiser des variables  :cry:  
 
Les codes d'exemples de MS font 10 pages !


---------------
L'ennemi est con : il croit que c'est nous l'ennemi, alors que c'est lui ! (Desproges)
Reply

Marsh Posté le 22-05-2003 à 20:15:32    

au taf on utilise le xerces-c et le xalan-c d'apache sous win et solaris, et ca roule

Reply

Marsh Posté le 23-05-2003 à 16:12:18    

leFab a écrit :


Sous windows je précise.


Windows ou Linux (ou ...), il suffit de choisir le paquet pour ton OS ... (je crois que même le gnome-xml est porté sous win, à vérifier ...)

Reply

Marsh Posté le 23-05-2003 à 16:13:54    

Lolo- a écrit :

au taf on utilise le xerces-c et le xalan-c d'apache sous win et solaris, et ca roule


Avez-vous des problèmes d'accents?

Reply

Marsh Posté le 23-05-2003 à 16:34:12    

western a écrit :


Avez-vous des problèmes d'accents?


moi je ne l'utilise pas directement, mais dans ma boite c'est ce qu'on utilise et l'unicode ne pose pas de problèmes.

Reply

Marsh Posté le 27-05-2003 à 10:15:46    

Franchement leFab pour un fichier de config TinyXml semble le mieux. C'est tres simple comparé aux usines a gaz genre MS.
 
ca ressemble a ca (de memoire) :
 

Code :
  1. TiXmlDocument doc;
  2. doc.LoadFile( "config.xml" );
  3. TiXmlElement * config = doc.RootElement();
  4. TiXmlElement * user= config->FirstChildElement( "user" );
  5. std::string name = user->Attribute( "name" );
  6. user->Attribute( "age", &age );
  7. pour un truc du genre :
  8. <config>
  9.     <user name="leFab" age="20" />
  10. </config>


 


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 27-05-2003 à 10:19:46    

HelloWorld a écrit :

Franchement leFab pour un fichier de config TinyXml semble le mieux. C'est tres simple comparé aux usines a gaz genre MS.
 
ca ressemble a ca (de memoire) :
 

Code :
  1. TiXmlDocument doc;
  2. doc.LoadFile( "config.xml" );
  3. TiXmlElement * config = doc.RootElement();
  4. TiXmlElement * user= config->FirstChildElement( "user" );
  5. std::string name = user->Attribute( "name" );
  6. user->Attribute( "age", &age );
  7. pour un truc du genre :
  8. <config>
  9.     <user name="leFab" age="20" />
  10. </config>


 
 


 
Merci, c'est ce que j'utilise finalement, et ça marche nickel  ;)


---------------
L'ennemi est con : il croit que c'est nous l'ennemi, alors que c'est lui ! (Desproges)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed