Mercurial > minori
annotate dep/pugixml/docs/samples/xpath_variables.cpp @ 301:b1f625b0227c
*: convert all files CRLF -> LF
some files were in DOS format, others were in unix. now everything
(that at least is under our control) should all be the same format
| author | Paper <paper@paper.us.eu.org> | 
|---|---|
| date | Mon, 13 May 2024 15:04:51 -0400 | 
| parents | d10b6c6b432e | 
| children | 
| rev | line source | 
|---|---|
| 55 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 1 #include "pugixml.hpp" | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 2 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 3 #include <iostream> | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 4 #include <string> | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 5 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 6 int main() | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 7 { | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 8 pugi::xml_document doc; | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 9 if (!doc.load_file("xgconsole.xml")) return -1; | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 10 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 11 // tag::code[] | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 12 // Select nodes via compiled query | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 13 pugi::xpath_variable_set vars; | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 14 vars.add("remote", pugi::xpath_type_boolean); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 15 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 16 pugi::xpath_query query_remote_tools("/Profile/Tools/Tool[@AllowRemote = string($remote)]", &vars); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 17 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 18 vars.set("remote", true); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 19 pugi::xpath_node_set tools_remote = query_remote_tools.evaluate_node_set(doc); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 20 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 21 vars.set("remote", false); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 22 pugi::xpath_node_set tools_local = query_remote_tools.evaluate_node_set(doc); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 23 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 24 std::cout << "Remote tool: "; | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 25 tools_remote[2].node().print(std::cout); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 26 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 27 std::cout << "Local tool: "; | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 28 tools_local[0].node().print(std::cout); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 29 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 30 // You can pass the context directly to select_nodes/select_node | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 31 pugi::xpath_node_set tools_local_imm = doc.select_nodes("/Profile/Tools/Tool[@AllowRemote = string($remote)]", &vars); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 32 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 33 std::cout << "Local tool imm: "; | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 34 tools_local_imm[0].node().print(std::cout); | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 35 // end::code[] | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 36 } | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 37 | 
| 
d10b6c6b432e
add xml lib, we will need to use it eventually
 Paper <mrpapersonic@gmail.com> parents: diff
changeset | 38 // vim:et | 
