Sto usando boost::property_tree
. La documentazione è molto vaga e in generale poco utile. Anche guardare la fonte/gli esempi non è stato di grande aiuto.Boost Property Boom e problemi di analisi Xml
Quello che mi chiedo è il seguente:
<VGHL>
<StringTable>
<Language>EN</Language>
<DataPath>..\\Data\\Resources\\Strings\\stringtable.bst</DataPath>
</StringTable>
</VGHL>
Come posso iterare su tutti gli elementi al livello attuale? Se faccio questo:
read_xml(fin, bifPropTree);
VGHL::String tablePath;
BOOST_FOREACH(boost::property_tree::wiptree::value_type &v,
bifPropTree.get_child(L"VGHL.StringTable"))
{
m_StringTable->ParseEntry(v.second, tablePath);
}
In ParseEntry
provo questo:
VGHL::String langName = stringTree.get<VGHL::String>(L"StringTable.Language");
Risultati un'eccezione (non non esiste). Ho anche provato questo:
VGHL::String langName = stringTree.get<VGHL::String>(L"Language");
stesso problema.
Dalla mia comprensione quando chiamo ParseEntry
sto passando un riferimento all'albero in quel nodo.
C'è un modo per affrontare questo, quando ho più voci di StringTable
utilizzando albero delle proprietà?
Grazie per averlo indicato fondamentalmente nel processo di unione di basi di codici. VGHL e Ludo :: String entrambi sono typedef di std :: wstring :) che non era il problema :( – UberJumper
Inoltre ho appena controllato, che doenst lavoro etere. È possibile utilizzare gli iteratori, ma saranno sempre in il livello attuale. – UberJumper