7 #include "TDictionary.hh"
12 TNode(void) : node(0) { };
13 TNode(const DOM::Node& n) : node(n) { };
14 TNode(const DOM::Element& elem) : node(elem) { };
15 TNode(const TNode& n) : node(n.node) { };
17 TNode next(void) const;
18 TNode nextL(void) const;
19 TNode prev(void) const;
20 TNode prevL(void) const;
21 TNode core(void) const;
22 TNode parent(void) const;
23 TNode first(void) const;
24 TNode firstL(void) const;
25 TNode last(void) const;
26 TNode lastL(void) const;
27 TNode child(unsigned) const;
28 unsigned size(void) const;
29 bool empty(void) const { return !first().node; };
30 std::string value(void) const { return (*this)["val"]; };
35 ProxyAttr(const DOM::Element& n, const std::string& s) : node(n), name(s) { };
36 operator std::string() const { return node.getAttribute(name); };
37 ProxyAttr& operator=(const std::string& v) { node.setAttribute(name, v); };
38 bool operator==(const std::string& v) const { return node.getAttribute(name) == v; };
39 bool operator!=(const std::string& v) const { return node.getAttribute(name) != v; };
45 operator bool() const { return node; };
46 DOM::Element element(void) const { return node; };
47 bool operator==(const TNode& n) const { return node == n.node; };
48 bool operator!=(const TNode& n) const { return node != n.node; };
49 TNode operator[](int i) const { return child(i); };
50 ProxyAttr operator[](const char* s) const { return ProxyAttr(node, s); };
52 //void advance(const TNode&) const;
53 void remove(void) const;
54 void replace(const TNode&) const;
55 void insert(const TNode&) const;
56 void append(const TNode&) const;
57 void append(const TNode&, const TNode&) const;
58 void prepend(const TNode&) const;
60 std::string get(const std::string&) const;
61 void set(const std::string&, const std::string&) const;
63 std::string name(void) const { return node.get_localName(); };
64 std::string nameC(void) const { return node.getAttribute("name"); };
65 bool hasId(void) const { return node.hasAttribute("id"); };
66 bool is(const std::string& s) const { return name() == s; };
67 bool isG(void) const { return is("g"); };
68 bool isSb(void) const { return is("sb"); };
69 bool isSp(void) const { return is("sp"); };
70 bool isC(void) const { return is("c"); }
71 bool isC(const std::string& name) const
72 { return isC() && node.getAttribute("name") == name; };
74 friend class TDocument;
80 #endif // __TNode_hh__