Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1409 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C/C++]Un mini parser XML ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++]Un mini parser XML ?

n°203553
HelloWorld
Salut tout le monde!
Posté le 28-08-2002 à 07:47:04  profilanswer
 

Salut à vous forumeur et forumeuses (si vous êtes blonde à forte poitrine ça m'intéresse aussi :o))
Je m'intéresse vaguement à xml, juste histoire d'être au courant vu qu'on en parle partout et que de plus en plus d'applications l'utilisent.
Et justement, je trouve que pour créer des fichiers de config c'est pas mal du tout (une bonne alternative aux fichiers ini)
Y'a déjà quelques applis qui le font.
Alors je me demandais s'il existait pas une petite bibli (gratuite, si possible en C) toute simple qui permette de récupérer facilement les divers champs dans un fichier xml simple d'une balise donnée, ou un truc du genre (une sorte d'alternative aux BD).
J'ai un peu regardé mais j'ai pas vraiment trouvé mon bonheur.
Thanks.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 28-08-2002 à 07:47:04  profilanswer
 

n°203574
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-08-2002 à 09:13:38  profilanswer
 

Il parait que Zion a fait un parser XML, mais je t'avouerais que je n'en sais guère plus... :(
Repasse cet aprèm, il sera réveillé et pourra te fournir plus de renseignements [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°203577
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-08-2002 à 09:15:06  profilanswer
 

Sinon, j'ai trouvé ça sur SourceForge, si ça peut t'aider...
 
http://sourceforge.net/projects/expat/


---------------
J'ai un string dans l'array (Paris Hilton)
n°203578
SoWhatIn22
Posté le 28-08-2002 à 09:17:36  profilanswer
 

HelloWorld a écrit a écrit :

 
Alors je me demandais s'il existait pas une petite bibli (gratuite, si possible en C) toute simple qui permette de récupérer facilement les divers champs dans un fichier xml simple d'une balise donnée, ou un truc du genre (une sorte d'alternative aux BD).
J'ai un peu regardé mais j'ai pas vraiment trouvé mon bonheur.
Thanks.




 
T'as pas du vraiment bien regarder...
Regarde dans les travaux du groupe Apache, avec notament la librairie Xerces qui est TRES utilisée par énormément de gens pour parser à peu près n'importe quel type de document ?xml.

n°203585
taureau
Posté le 28-08-2002 à 09:30:38  profilanswer
 

tu as aussi libxml http://xmlsoft.org/ meme si ça risque d'en faire beaucoup plus surtout si c juste pour faire un fichier de config...
 
le xml c'est "juste" un fichier texte alors tu peux toujours te construire une moulinette qui fera juste le travail souhaité plutot que d'utiliser une usine à gaz  :D  
 
et pis bon si c'est pour faire des fichiers ini, xml c'est peut-etre trop aussi  :D  
 
pour ceux qui travaille sous delphi il y a ça http://www.skch.net/projects/xml_data.html c'est simple et flexible.

n°203592
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-08-2002 à 09:47:34  profilanswer
 

Harkonnen a écrit a écrit :

Il parait que Zion a fait un parser XML, mais je t'avouerais que je n'en sais guère plus... :(




 
oui mais il l'a fait en Pascal (pour Delphi), donc à moins d'utiliser C++Builder ça n'ira pas :/
l'avantage de son parser est la vitesse (on a fait des tests : il est plus rapide qu'un parser commercial qui était déjà très rapide)

n°203736
gilou
Modérateur
Modzilla
Posté le 28-08-2002 à 12:18:26  profilanswer
 

Harkonnen a écrit a écrit :

Sinon, j'ai trouvé ça sur SourceForge, si ça peut t'aider...
 
http://sourceforge.net/projects/expat/




C'est meme ce qu'il y a de mieux pour son cas precis (parseur rapide et leger).
Note1: expat n'est pas un validateur, et si il a besoin de validation pour une DTD, il faudra qu'il ajoute le support adequat [je l'ai pas fait, mais j'ai des potes qui l'ont fait].
 
Note2: Expat supporte quelques encodings: ASCII, Isolatin1, UTF-8 et UTF-16. Si on s'attend a des fichiers avec des jeux de caractere exotique, il faudra la aussi ajouter le support ad-hoc (utilisant icu par exemple).
 
Note3: expat est un parseur de base, tres rapide et efficace, mais il n'a pas de support natif pour les XML schemas [il en a deja pas pour les DTD, donc a fortiori pour les schemas...]
 
Note4: expat n'a pas de support natif pour acceder aux url distantes. Si il y a des fichiers distants, il faut ajouter le support là aussi (avec libcurl par exemple).
 
Par contre, si tout ce qui l'interesse, c'est du XML Well-Formed, pour parser des fichiers disques, avec un encodage usuel, alors, il lui suffit de recompiler expat en virant le support pour parser les DTD, et il aura ce qu'il y a de mieux (leger et rapide) sur le marché. En plus, le code de expat est relativement comprehensible.
 
A+,


Message édité par gilou le 28-08-2002 à 12:20:25

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°203753
gilou
Modérateur
Modzilla
Posté le 28-08-2002 à 12:30:40  profilanswer
 

SoWhatIn22 a écrit a écrit :

 
 
T'as pas du vraiment bien regarder...
Regarde dans les travaux du groupe Apache, avec notament la librairie Xerces qui est TRES utilisée par énormément de gens pour parser à peu près n'importe quel type de document ?xml.




Oui, mais xerces c'est un gros parser en C++, pas un petit parseur leger en C.
Xerces, c'est utile des que tu as besoin de toutes les fonctionalités du XML (schemas par exemple).
En plus, l'interface DOM de xerces est bien, mais les interfaces sax et sax2 de xerces ont quelques defauts [a la base ce sont des defauts de SAX. L'interface native de expat est meilleure].
Je connais assez bien expat (leur ai soumis un patch qu'ils ont d'ailleurs pas integré, faudra que je leur file un test case pour qu'ils voient le probleme, assez tordu) et Xerces (ai modifié pas mal de classes de l'interface SAX afin d'avoir un peu plus de controle, pour un produit), et leurs domaines d'utilité sont assez differents.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°203936
zion
Plop
Posté le 28-08-2002 à 15:35:31  profilanswer
 

Harkonnen a écrit a écrit :

Il parait que Zion a fait un parser XML, mais je t'avouerais que je n'en sais guère plus... :(
Repasse cet aprèm, il sera réveillé et pourra te fournir plus de renseignements [:ddr555]




 
Ouai mais comme l'a expliqué antp, mon parser est en pascal... Il est simplifié à mort (genre pas de cdata, pas de namespace, etc, etc), mais du coup le parser est extrèmement rapide, j'en ai pas encore trouvé un seul qui va plus vite en fait  :ange:  
 
Mais bon, la vitesse à un prix, et de plus c'est du pascal donc tu sauras pas en faire grand chose. (Quoique, tu peux le convertir en C++ ca doit pas être dur hein).
 
http://jvcl.sourceforge.net  
 
 :hello:


---------------
Informaticien.be - Lancez des défis à vos amis
n°204113
HelloWorld
Salut tout le monde!
Posté le 28-08-2002 à 17:27:09  profilanswer
 

Merci à tous pour vos réponses.
Je suis tombé sur le lien Apache mais j'ai pas cliké. Ca m'a fait peur (grosse bibli).
Moi je veut un tout petit truc, qui se fout des namespaces, des DTD, bref qui n'a en fait pas grand chose a voir avec le xml, si ce n'est juste récupérer les valeurs de certaines balises.
par exemple, pour dresser une liste de logiciels :

Code :
  1. <logiciel>
  2. <nom>Dev C++ 4</nom>
  3. <categorie>Programmation</categorie>
  4. <description>Environnement de développement ...</description>
  5. <emplacement>Prog\DevC++</emplacement>
  6. </logiciel>


Ca va pas plus loin que ca. Pour servir d'alternative aux fichiers ini aussi ... et aux bases de données.
Avant de coder moi même un truc tout con qui se charge de récupérer dans un fichier un champ entouré par une balise donnée, je voulais savoir si quelqu'un n'avait pas déjà fait ça (utiliser un xml a la place d'un fichier ini) et avec quoi.
Je vais suivre vos pistes et je verai ensuite.
Thanks.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 28-08-2002 à 17:27:09  profilanswer
 

n°204282
verdoux
And I'm still waiting
Posté le 28-08-2002 à 22:06:46  profilanswer
 

Pour windows y a MSXML de microsoft.

n°204339
gilou
Modérateur
Modzilla
Posté le 29-08-2002 à 01:47:34  profilanswer
 

Verdoux a écrit a écrit :

Pour windows y a MSXML de microsoft.




Il a une interface SAX?
Parce que du DOM juste pour ce qu'il veut fairer, c'est chasser les mouches avec un marteau pilon. (Pis il a plein de Pbs le parser de M$, des que tu veux faire des trucs complexes).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C/C++]Un mini parser XML ?

 

Sujets relatifs
[JAVA, XML]inclure des .xml dans du xml[XML] XML et le web... (Transforming)
[XML / XSL] Comment formaté du texte contenu dans une balise xml ?Image MINI - je comprends pas ce script
[JAVA] Parser MIME (JavaMail)[Java] lecture de fichiers XML
[XSL-XML] Script XSL et données XML => intéraction : soluce insidecomment lire un doc XML avec php ?
[XSL-XML] Définition du Namespace en XSL : comprends rien ![C] A votre bon coeur, aidez moi a parser ca (resolu)
Plus de sujets relatifs à : [C/C++]Un mini parser XML ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR