2014-05-23 4 views
0

Je suis essentiellement chargé d'écrire une fonction potentiellement énorme en C++ qui traite de la recherche et de l'écriture dans un fichier XML.Lire, rechercher et écrire en XML en utilisant C++

Existe-t-il un moyen en C++ pour rechercher dans un fichier XML, soit en tant que fichier xml ou simplement en texte brut, prendre un chemin et écrire un enregistrement à la fin de ce chemin. Par exemple:

<File> 
    <Record> 
     <Name>Joe</Name> 
     <Age>52</Age> 
    </Record> 
</File> 

La fonction rechercherait la fin du dernier enregistrement, puis insérez une ligne pour un nouveau record, puis aller ensuite à travers la boucle, il trouve la nouvelle balise d'enregistrement, insère le nom, puis la prochaine fois qu'il insère l'âge, il ferme la balise Record.

Des idées ou des sources qui pourraient être utiles pour ce niveau de manipulation? Conseils sur comment ça devrait aller?

Pour ceux qui appellent cela un doublon, permettez-moi d'ajouter que je ne peux pas utiliser une DLL tierce. Je dois tout coder tout seul.

+0

Duplicata: http://stackoverflow.com/questions/9387610/what-xml-parser-should-i-use-in-c, http://stackoverflow.com/questions/170686/best-open-xml -parser-for-c, – JBentley

+0

Pas un doublon. Tous ces liens utilisent des DLL tierces. Je ne suis pas autorisé à les utiliser. – user3215251

+2

Vous n'avez pas à lier dynamiquement aux bibliothèques tierces (DLL). Cependant, si vous devez écrire votre propre code, alors qu'est-ce que vous demandez exactement? "Y at-il un moyen en C++" est une question inutile - bien sûr il y a un moyen, sinon il n'y aurait pas de bibliothèques tierces pour le faire. Si vous voulez une compréhension détaillée, lisez la spécification XML et/ou regardez la source des différentes bibliothèques XML C++. Si vous voulez de l'aide ici, vous devez poser une question précise. – JBentley

Répondre

3

Utilisez boost :: property_tree il peut gérer XML et est assez sympa à mon avis.

http://www.boost.org/doc/libs/1_41_0/doc/html/boost_propertytree/tutorial.html devrait vous donner un indice. J'ai écrit un petit projet en l'utilisant et c'était utile. Il y a d'autres analyseurs syntaxiques comme tinyXML qui est également très bon.

+0

Je ne suis pas autorisé à utiliser des DLL tierces. Je dois utiliser mon propre code seulement. – user3215251

+0

Cette définition n'est pas très précise: TinyXML vient dans une version de code source. – clambake