Parser un document XML avec C++

assiatoune Messages postés 6 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 18 juillet 2007 - 22 janv. 2005 à 15:45
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 - 23 janv. 2005 à 11:47
bonjour tout le monde!
ma question est la suivante: j'ai un document XML (un schéma XML) et je veux extraire (avec C++) dante une structure de données (tables ou listes..etc)les informations conserants chaque élément : ses sous elements, ses attributs et leurs valeurs.
existe t'il une API ou une librairie qui me facilite la tache pour le faire? sinon comment le faire?
Aidez moi s'il vous plait !!! j'attends votre proposition !
j'attends votre reponse avec impatience!!
merci beaucoup d'avance!

1 réponse

garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
23 janv. 2005 à 11:47
Bonne nouvelle ! Des parsers XML il y en a plusieurs !!!

La question essentielle est : quel est ton besoin exact ?
Si ton fichier XML est simple et que seule quelques informations t'interessent alors il est peut être bon de ne faire qu'une recherche textuelle pour extraire tes infos.
Mais d'après ce que j'ai compris tu traites des strctures plus complexes. Donc je pense qu'il te faut un "vrai" parser.

Sache qu'il existe essentiellement 2 types de parsers : SAX et DOM.
* Les parsers SAX sont evenementiels. C'est-à-dire qu'ils lisent le fichier XML de haut en bas et à chaque fois qu'ils rencontrent un élément ils disent ce que c'est. Par exemple
-balise d'ouverture : ANNUAIRE
-paramètre PROPRIETAIRE="garslouche"
-paramètre DATE_MODIF="23/01/2005"
-...
-balise fermeture ANNUAIRE
Les parsers SAX sont légers, rapides, et demandent peu de mémoire. En revanche c'est au programmeur d'interpreter les sequences emises.

* Les parsers DOM sont dits hiérarchiques. C'est-à-dire qu'ils lisent le fichier XML comme un tout et génèrent une structure représentant l'arbre XML
Ils sont plus gourmands en temps de traitement et en mémoire mais sont d'une utilisation bien plus agrèable. De plus DOM permet de valider un document XML à partir d'une DTD ou d'un Schema (depuis DOM Level 2 je crois)

Il existe plusieurs implémentations de SAX et de DOM. Les plus connues sont msxml (de microsoft) et xerces (du projet Apache). Pour ma part je préfère xerces car il respecte davantage les normes du W3C.

Bon courage

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
0
Rejoignez-nous