Mercurial > minori
annotate dep/pugixml/docs/samples/traverse_walker.cpp @ 55:d10b6c6b432e
add xml lib, we will need to use it eventually
| author | Paper <mrpapersonic@gmail.com> | 
|---|---|
| date | Tue, 26 Sep 2023 12:37:08 -0400 (2023-09-26) | 
| parents | |
| 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 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
5 const char* node_types[] = | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
6 { | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
7 "null", "document", "element", "pcdata", "cdata", "comment", "pi", "declaration" | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
8 }; | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
9 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
10 // tag::impl[] | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
11 struct simple_walker: pugi::xml_tree_walker | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
12 { | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
13 virtual bool for_each(pugi::xml_node& node) | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
14 { | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
15 for (int i = 0; i < depth(); ++i) std::cout << " "; // indentation | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
16 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
17 std::cout << node_types[node.type()] << ": name='" << node.name() << "', value='" << node.value() << "'\n"; | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
18 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
19 return true; // continue traversal | 
| 
 
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 }; | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
22 // end::impl[] | 
| 
 
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 int main() | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
25 { | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
26 pugi::xml_document doc; | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
27 if (!doc.load_file("tree.xml")) return -1; | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
28 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
29 // tag::traverse[] | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
30 simple_walker walker; | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
31 doc.traverse(walker); | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
32 // end::traverse[] | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
33 } | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
34 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
35 // vim:et | 
