Parseur xml

Description

J'avais besoin d'un parseur Xml dans mon projet, je sais que ca existe mais j'en avais jamais fait alors j'ai mis les mains a la pate :)
Ca ma pris 1 journée complète (2h pour la structure de donnée a utiliser, 1h pour écrire l'automate de base et le reste pour coder/debugger et en faire un objet tout beau tout propre)
Alors l'objet c'est CXmlDocument il est composé de CXmlSections qui sont des sections du type <tag field="data" field2="data" .... />
ou <tag field="data" ... > \n[...]</tag>
enfin bref du xml quoi, il ne peut y avoir deux champs fields identique pour 1 mm section. Un section peut contenir des fils <tag ... >\n <tag_fils1 ..../> etc... qui eux mm peuvent contenir des fils etc.
Bref tout est dans le code vous verrez. Sinon j'ai mis aussi un exemple de fichier qui m'a servi d'appui pour la génération du code. Il y a aussi en goodies une fonction d'affichage. Je vous donne également une portion du code qui sert a initialiser la classe et à l'utiliser une fois qu'elle a fait son travail (avec affichage d'erreurs etc...) bon reste plus pour vous qu'a ladapter et vive les fichiers de sauvegarde en Xml
++hellaynnea

Source / Exemple :


Bon les sources que j'ai donné (pour tester) ne sont bien entendu pas complètes étant donné que le projet n'est pas fini j'ai pas le droit de le release encore mais ca viendra bientot sous GPL (dici 1/2 semaines)
En attendant amusez vous bien
Le parseur est CXmlDocument
la fonction d'init est MODULE::__loadXml(...)
et la fonction de récupération de la structure du fichier est __buildModule(...)
a laquelle on passe en params le documentStructuré, une structure qui peut contenir toutes les infos dont vous avez besoin pour constituer vos objets (la fonction est récursive alors fo bien qu'elle se souvienne de ce qu'elle a fait avant)
Bonne lecture
J'espère que cette source pourra vous etre utile

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.