diff options
Diffstat (limited to 'docs/samples/traverse_predicate.cpp')
-rw-r--r-- | docs/samples/traverse_predicate.cpp | 96 |
1 files changed, 48 insertions, 48 deletions
diff --git a/docs/samples/traverse_predicate.cpp b/docs/samples/traverse_predicate.cpp index e565597..9d8ded0 100644 --- a/docs/samples/traverse_predicate.cpp +++ b/docs/samples/traverse_predicate.cpp @@ -1,48 +1,48 @@ -#include "pugixml.hpp"
-
-#include <string.h>
-#include <iostream>
-
-//[code_traverse_predicate_decl
-bool small_timeout(pugi::xml_node node)
-{
- return node.attribute("Timeout").as_int() < 20;
-}
-
-struct allow_remote_predicate
-{
- bool operator()(pugi::xml_attribute attr) const
- {
- return strcmp(attr.name(), "AllowRemote") == 0;
- }
-
- bool operator()(pugi::xml_node node) const
- {
- return node.attribute("AllowRemote").as_bool();
- }
-};
-//]
-
-int main()
-{
- pugi::xml_document doc;
- if (!doc.load_file("xgconsole.xml")) return -1;
-
- pugi::xml_node tools = doc.child("Profile").child("Tools");
-
- //[code_traverse_predicate_find
- // Find child via predicate (looks for direct children only)
- std::cout << tools.find_child(allow_remote_predicate()).attribute("Filename").value() << std::endl;
-
- // Find node via predicate (looks for all descendants in depth-first order)
- std::cout << doc.find_node(allow_remote_predicate()).attribute("Filename").value() << std::endl;
-
- // Find attribute via predicate
- std::cout << tools.last_child().find_attribute(allow_remote_predicate()).value() << std::endl;
-
- // We can use simple functions instead of function objects
- std::cout << tools.find_child(small_timeout).attribute("Filename").value() << std::endl;
- //]
-}
-
-// vim:et
+#include "pugixml.hpp" + +#include <string.h> +#include <iostream> + +//[code_traverse_predicate_decl +bool small_timeout(pugi::xml_node node) +{ + return node.attribute("Timeout").as_int() < 20; +} + +struct allow_remote_predicate +{ + bool operator()(pugi::xml_attribute attr) const + { + return strcmp(attr.name(), "AllowRemote") == 0; + } + + bool operator()(pugi::xml_node node) const + { + return node.attribute("AllowRemote").as_bool(); + } +}; +//] + +int main() +{ + pugi::xml_document doc; + if (!doc.load_file("xgconsole.xml")) return -1; + + pugi::xml_node tools = doc.child("Profile").child("Tools"); + + //[code_traverse_predicate_find + // Find child via predicate (looks for direct children only) + std::cout << tools.find_child(allow_remote_predicate()).attribute("Filename").value() << std::endl; + + // Find node via predicate (looks for all descendants in depth-first order) + std::cout << doc.find_node(allow_remote_predicate()).attribute("Filename").value() << std::endl; + + // Find attribute via predicate + std::cout << tools.last_child().find_attribute(allow_remote_predicate()).value() << std::endl; + + // We can use simple functions instead of function objects + std::cout << tools.find_child(small_timeout).attribute("Filename").value() << std::endl; + //] +} + +// vim:et |