1 /*******************************************************
2 * Unit test for the xml_element class
4 * test xml element access
5 ******************************************************
16 const char xml_file[] = "xml_test01.xml";
18 std::cout << "Reading XML file " << xml_file << "\n";
20 doc.ParseFile("xml_test01.xml");
22 xml_element root_node(doc);
24 std::cout << "Root element is " << root_node.name() << "\n";
25 std::cout << "Root node type is " << root_node.type() << "\n";
26 assert(root_node.name() == "doc");
28 std::vector<xml_element> book, chapters;
30 book = root_node["book"];
31 assert(book.size() == 1);
33 chapters = book[0]["chapter"];
35 std::cout << "Found " << chapters.size() << " chapter elements.\n";
37 std::vector<xml_element> report;
39 report = root_node["report"];
40 assert(report.size() == 0);
42 // Find an element three levels deep
44 std::vector<xml_element> children;
45 xml_element found_node;
47 children = book[0]["titlepage"];
48 found_node = children[0];
50 assert(found_node.is_a_node() == true);
51 children = found_node["title"];
52 found_node = children[0];
53 assert(found_node.is_a_node() == true);
54 std::cout << "Name of title node = " << found_node.name() << "\n";
55 std::cout << "Content of title node = " << found_node.content() << "\n";