Я использую pugixml для анализа файла. Я использую xml_tree_walker, и у меня есть переменная, которую я хочу изменить, когда ходок проходит по xml. В настоящее время я использую глобальную переменную, но не хочу. Есть ли способ передать переменную ходунку по ссылке? Если это так, значит ли это, что мне нужно изменить прототип функции for_each в источнике pugixml?
Ниже показано, как я сейчас использую ходунки.
struct simple_walker: pugi::xml_tree_walker
{
virtual bool for_each(pugi::xml_node& node)
{
for (int i = 0; i < depth(); ++i) std::cout << " "; // indentation
std::cout << node_types[node.type()] << ": name='" << node.name() << "', value='" << node.value() << "'\n";
some_global = node.name(); // I don't want this to be a global
return true; // continue traversal
}
};
Я так называю Уокера:
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file(XML_FILE);
simple_walker mySimpleWalker;
doc.traverse(mySimpleWalker);