Preparing for debian package
[ACL.git] / test / xml_elem.cpp
1 /*******************************************************
2  *  Unit test for the xml_element class
3  *
4  * test xml element access
5  ******************************************************
6  *
7  */
8
9 #include "xml.h"
10 #include <assert.h>
11
12 int main()
13 {
14    xml    doc;
15
16    const char xml_file[] = "xml_test01.xml";
17
18    std::cout << "Reading XML file " << xml_file << "\n";
19
20    doc.ParseFile("xml_test01.xml");
21
22    xml_element root_node(doc);
23
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");
27
28    std::vector<xml_element> book, chapters;
29
30    book = root_node["book"];
31    assert(book.size() == 1);
32
33    chapters = book[0]["chapter"];
34
35    std::cout << "Found " << chapters.size() << " chapter elements.\n";
36
37    std::vector<xml_element> report;
38
39    report = root_node["report"];
40    assert(report.size() == 0);
41
42    // Find an element three levels deep
43  
44    std::vector<xml_element> children;
45    xml_element              found_node;
46
47    children = book[0]["titlepage"];
48    found_node = children[0];
49
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";
56
57    return 0;
58 }
59