diff --git a/DesignEvaluator/src/main.cpp b/DesignEvaluator/src/main.cpp index 9b3c765bcadc2a1d51263665aa9e37f6c22fda1b..ff8410f9b5e7ff656b8caa75807bf96182492407 100644 --- a/DesignEvaluator/src/main.cpp +++ b/DesignEvaluator/src/main.cpp @@ -37,11 +37,14 @@ boost::property_tree::ptree extractNodesFromPtree(const boost::property_tree::pt for (const auto& parent_node : ptree) { if (parent_node.first == target_node) { reduced_ptree.add_child(parent_node.first, parent_node.second); + } else { + boost::property_tree::ptree myPtree{}; + myPtree = extractNodesFromPtree(parent_node.second, target_node); + for (const auto& child_node : myPtree) { + reduced_ptree.add_child(child_node.first, child_node.second); + } } - boost::property_tree::ptree myPtree{}; - myPtree = extractNodesFromPtree(parent_node.second, target_node); } - return reduced_ptree; } @@ -132,19 +135,8 @@ int main () { case State::ExtractingConfigTreeInforamtion: std::cout << "Current State: " << state << std::endl; - // Iterate through the children of <ConfigFile.ProgramSettings.Parameters> - // for (const boost::property_tree::ptree::value_type& parent_nodes : config_tree.get_child("ConfigFile.ProgramSettings.Parameters")) { - // boost::property_tree::ptree temporary_tree{}; - // // Iterate through the children of parent_node - // for (const auto &child_nodes : parent_nodes.second) { - // if (child_nodes.first == "SubPath") { - // temporary_tree.add_child(child_nodes.first, child_nodes.second); - // } - // } - // reduced_config_tree.add_child(parent_nodes.first, temporary_tree); - // } reduced_config_tree = extractNodesFromPtree(config_tree, "SubPath"); - // printNodeNames(reduced_config_tree); + printNodeNames(reduced_config_tree); state = State::SubstractingNodeValues; break;