Cela devrait être simple (j'apprends que j'apprends simplement boost, alors je manque quelque chose)
J'ai lu quelque chose de JSON simple à l'aide de JSON_Read et j'ai maintenant une pree. Tous les exemples de l'émission Web à l'aide de ptree.get ("Entry_name") pour obtenir une entrée. Tout ce que je veux faire, c'est quelque chose comme: p> i.e. Boucle à travers le ptree et écrivez chaque nom (c'est-à-dire ce que vous avez mis dans pt.get ()) et sa valeur correspondante. P> désolé si c'est simple p> ross p> p>
5 Réponses :
J'ai aussi des problèmes avec PTREE, mais cela peut peut-être aider:
Découvrez Didacticiel rapide PTRee de Boost's PTRee P >
v. {nom_name} et p>
v. {valeur} cela fonctionnerait-il? p>
serait
v. first p>
blockQuote>
v.second.data () p>
blockQuote>
Je cherchais la même chose et je n'ai pas trouvé la réponse nulle part. Il s'est avéré assez simple: En outre, si un Un tel noeud de cette itération n'est pas un nœud de terminal et est lui-même un ptree, vous pouvez l'obtenir comme PTREE de cet itérateur lui-même:
iter-> premier code> est le nom d'entrée et
iter-> second.data () code> est la valeur d'entrée du premier niveau. (Vous pouvez ensuite reprocher avec
iter-> second.begin () code> /
fin () code> pour des niveaux plus profonds.) P>
ptree subpt = iter-> second.get_child ("nodename"); code> p> p> p>
C'est un ancien poste et trop tard pour commenter, mais si iter-> second.data () est un tableau, ce code ne fonctionnerait pas, n'est-ce pas?
À droite, mais si vous lisez le texte sous le code, il est expliqué comment traiter les non-terminaux.
Je ne peux pas obtenir le texte ci-dessous le code pour travailler pour des niveaux plus profonds du ptree. Je manque quelque chose ou ne pas la comprendre correctement.
@Dan: Pouvez-vous élaborer, qu'est-ce qui ne fonctionne pas? Qu'avez-vous essayé? Si besoin d'être, vous pouvez commencer une nouvelle question.
Peu importe à ce stade. Mon problème est essentiellement l'un des charges. J'essayais juste d'apprendre un peu sur le boost :: ptree pour voir si cela fonctionnerait pour mes besoins. AFIK ça ne peut pas. Je dois être capable de faire un XSL sur un fichier XML volumineux important pour la jeter dans une base de données avec Bulkinsert. J'ai essayé plusieurs bibliothèques et je ne peux pas sembler les faire courir. Si vous avez des suggestions non VS pour le chargement et le XSL transformant un XML, je suis toutes les oreilles.
Peut-être Xerces ( Xerces.apache.org ). Je l'ai utilisé il y a des années et c'est assez mature.
Voici un excellent exemple de la façon d'itération d'un ptree en utilisant boost_foreach http://akrzemi1.wordpress.com/2011/07/ 13 / analyse-xml-with-boost / p>
Pour un accès direct à l'aide des fonctions «Obtenir» normales, regardez l'exemple de Boost: http://www.boost.org/doc/libs /1_51_0/doc/html/boost_propertytree/Tutorial.html p>
La page de documentation est située ici: http://www.boost.org/doc /Libs/1_51_0/doc/html/boost/property_tree/basic_ptree.html Je sais que ce n'est pas très bien documenté mais c'est utile. p>
Cet exemple iTère sur un simple objet JSON et met ses valeurs dans un vecteur.
Old thread, mais voici une version C ++ 11 de /a> Réponse avec la plage de gamme pour les boucles: key1,value1
key2,value2