+ if (!doc)
+ throw XMLError("Empty XML Document");
+
+ const xmlNode* root = xmlDocGetRootElement(doc);
+
+ check_element_yp2(root, "yp2");
+
+ std::cout << "processing /yp2" << std::endl;
+
+ // process <start> node which is expected first element node
+ const xmlNode* node = jump_to_children(root, XML_ELEMENT_NODE);
+ //for (; node && node->type != XML_ELEMENT_NODE; node = node->next)
+ // ;
+
+ check_element_yp2(node, "start");
+
+ std::cout << "processing /yp2/start" << std::endl;
+
+ // process <filters> node which is expected second element node
+ node = jump_to_next(node, XML_ELEMENT_NODE);
+ check_element_yp2(node, "filters");
+ std::cout << "processing /yp2/filters" << std::endl;
+
+ parse_xml_filters(doc, jump_to_children(node, XML_ELEMENT_NODE));
+
+ // process <routes> node which is expected third element node
+ node = jump_to_next(node, XML_ELEMENT_NODE);
+ check_element_yp2(node, "routes");
+ std::cout << "processing /yp2/routes" << std::endl;
+
+ parse_xml_routes(doc, jump_to_children(node, XML_ELEMENT_NODE));
+}