Analyse XML avec boost propriété de l'arbre
J'ai le fichier XML suivant et je veux le stocker à l'aide de la ci-dessous structures.
les données des structures:
struct transitions
{
string oldstate;
string event;
string newstate;
};
struct XML_Diagram
{
string diag_name;
string diag_defaultstate;
list<string> diag_states;
list<string> diag_events;
list<transitions> diag_transitions;
};
le fichier xml:
<diagram>
<diagname>DiagaX</diagname>
<states>
<state>A</state>
.............
</states>
<events>
<event>ev1</event>
.................
</events>
<defaultstate>A</defaultstate>
<transitions>
<transition>
<oldstate>A</oldstate>
<event>ev1</event>
<newstate>B</newstate>
</transition>
<transition>
<oldstate>B</oldstate>
<event>ev2</event>
<newstate>C</newstate>
</transition>
.........................
</transitions>
</diagram>
Il est clair pour moi comment puis-je accéder diagramme.états .
Je peux le faire avec le code suivant:
using boost::property_tree::ptree;
ptree pt;
//Get diagram states
BOOST_FOREACH(ptree::value_type &v, pt.get_child("diagram.states"))
{
diag_states.push_back(v.second.data());
}
Ce n'est pas clair pour moi est de savoir comment puis-je accéder aux données à partir du diagramme.les transitions.la transition ?
Mon problème est que je ne pouvais pas trouver des exemples dans la documentation sur la façon d'analyser plus complexe des fichiers xml avec plusieurs niveaux.
OriginalL'auteur Tg Cl | 2012-01-01
Vous devez vous connecter pour publier un commentaire.
Cet utilitaire utile à la fonction de traverse et de jolies gravures à un ensemble de la propriété de l'arbre:
La
v.second
valeurs sont des arbres eux-mêmes qui peuvent être accessibles avec l'habitudeget
méthodes. Les transitionspeut par exemple être consulté et imprimé comme ceci:
OriginalL'auteur antonakos
Voici un autre exemple de la façon d'imprimer
ptree
avec des attributs:Espère que cette aide.
OriginalL'auteur Alex Blekhman