summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/pugixml/docs/samples/xpath_variables.cpp
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2016-06-25 19:01:45 +0200
committer Miodrag Milanovic <mmicko@gmail.com>2016-06-25 19:54:44 +0200
commit8042037fd9e6d012f04f8dcc13c2215d72ccee06 (patch)
tree3babbd12b19f6b0cd8515da6f5f3d502369ec4ae /3rdparty/pugixml/docs/samples/xpath_variables.cpp
parent3739530a86b94869daecea75f8a0938a14e5741a (diff)
Added PugiXML and used it for hashfile (nw)
Diffstat (limited to '3rdparty/pugixml/docs/samples/xpath_variables.cpp')
-rw-r--r--3rdparty/pugixml/docs/samples/xpath_variables.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/3rdparty/pugixml/docs/samples/xpath_variables.cpp b/3rdparty/pugixml/docs/samples/xpath_variables.cpp
new file mode 100644
index 00000000000..5affaefd09c
--- /dev/null
+++ b/3rdparty/pugixml/docs/samples/xpath_variables.cpp
@@ -0,0 +1,38 @@
+#include "pugixml.hpp"
+
+#include <iostream>
+#include <string>
+
+int main()
+{
+ pugi::xml_document doc;
+ if (!doc.load_file("xgconsole.xml")) return -1;
+
+// tag::code[]
+ // Select nodes via compiled query
+ pugi::xpath_variable_set vars;
+ vars.add("remote", pugi::xpath_type_boolean);
+
+ pugi::xpath_query query_remote_tools("/Profile/Tools/Tool[@AllowRemote = string($remote)]", &vars);
+
+ vars.set("remote", true);
+ pugi::xpath_node_set tools_remote = query_remote_tools.evaluate_node_set(doc);
+
+ vars.set("remote", false);
+ pugi::xpath_node_set tools_local = query_remote_tools.evaluate_node_set(doc);
+
+ std::cout << "Remote tool: ";
+ tools_remote[2].node().print(std::cout);
+
+ std::cout << "Local tool: ";
+ tools_local[0].node().print(std::cout);
+
+ // You can pass the context directly to select_nodes/select_node
+ pugi::xpath_node_set tools_local_imm = doc.select_nodes("/Profile/Tools/Tool[@AllowRemote = string($remote)]", &vars);
+
+ std::cout << "Local tool imm: ";
+ tools_local_imm[0].node().print(std::cout);
+// end::code[]
+}
+
+// vim:et