dom_element.h
1 /*
2 ** ClanLib SDK
3 ** Copyright (c) 1997-2015 The ClanLib Team
4 **
5 ** This software is provided 'as-is', without any express or implied
6 ** warranty. In no event will the authors be held liable for any damages
7 ** arising from the use of this software.
8 **
9 ** Permission is granted to anyone to use this software for any purpose,
10 ** including commercial applications, and to alter it and redistribute it
11 ** freely, subject to the following restrictions:
12 **
13 ** 1. The origin of this software must not be misrepresented; you must not
14 ** claim that you wrote the original software. If you use this software
15 ** in a product, an acknowledgment in the product documentation would be
16 ** appreciated but is not required.
17 ** 2. Altered source versions must be plainly marked as such, and must not be
18 ** misrepresented as being the original software.
19 ** 3. This notice may not be removed or altered from any source distribution.
20 **
21 ** Note: Some of the libraries ClanLib may link to may have additional
22 ** requirements or restrictions.
23 **
24 ** File Author(s):
25 **
26 ** Magnus Norddahl
27 */
28 
29 
30 #pragma once
31 
32 #include "dom_node.h"
33 
34 namespace clan
35 {
38 
59 class DomElement : public DomNode
60 {
63 
64 public:
67 
69  DomDocument &doc,
70  const DomString &tag_name,
71  const DomString &namespace_uri = DomString());
72 
76  DomElement(const std::shared_ptr<DomNode_Impl> &impl);
77 
79 
83 
84 public:
87 
91 
92 public:
94  bool has_attribute(const DomString &name) const;
95 
98  const DomString &namespace_uri,
99  const DomString &local_name) const;
100 
102  DomString get_attribute(const DomString &name) const;
103 
110  DomString get_attribute(const DomString &name, const DomString &default_value) const;
111 
114  const DomString &namespace_uri,
115  const DomString &local_name) const;
116 
118  const DomString &namespace_uri,
119  const DomString &local_name,
120  const DomString &default_value) const;
121 
123 
131  void set_attribute(const DomString &name, const DomString &value);
132 
134  const DomString &namespace_uri,
135  const DomString &qualified_name,
136  const DomString &value);
137 
139 
140  void remove_attribute(const DomString &name);
141 
143  const DomString &namespace_uri,
144  const DomString &local_name);
145 
152 
154  const DomString &namespace_uri,
155  const DomString &local_name) const;
156 
163 
170 
172 
175 
177  const DomString &namespace_uri,
178  const DomString &local_name);
179 
181  std::string get_text() const;
182 
184 
185  DomString get_child_string(const DomString &name, const DomString &default_value = DomString()) const;
186 
188 
189  DomString get_child_string_ns(const DomString &namespace_uri, const DomString &local_name, const DomString &default_value = DomString()) const;
190 
192 
193  int get_child_int(const DomString &name, int default_value = 0) const;
194 
196 
197  int get_child_int_ns(const DomString &namespace_uri, const DomString &local_name, int default_value = 0) const;
198 
200 
201  bool get_child_bool(const DomString &name, bool default_value = false) const;
202 
204 
205  bool get_child_bool_ns(const DomString &namespace_uri, const DomString &local_name, bool default_value = false) const;
206 
208 
209  void set_child_string(const DomString &name, const DomString &value);
210 
212 
213  void set_child_string_ns(const DomString &namespace_uri, const DomString &qualified_name, const DomString &value);
214 
216 
217  void set_child_int(const DomString &name, int value);
218 
220 
221  void set_child_int_ns(const DomString &namespace_uri, const DomString &qualified_name, int value);
222 
224 
225  void set_child_bool(const DomString &name, bool value);
226 
228 
229  void set_child_bool_ns(const DomString &namespace_uri, const DomString &qualified_name, bool value);
230 
233 
236 
238  int get_attribute_int(const DomString &name, int default_value = 0) const;
239 
241  int get_attribute_int_ns(const DomString &namespace_uri, const DomString &local_name, int default_value = 0) const;
242 
244  bool get_attribute_bool(const DomString &name, bool default_value = false) const;
245 
247  bool get_attribute_bool_ns(const DomString &namespace_uri, const DomString &local_name, bool default_value = false) const;
248 
250  float get_attribute_float(const DomString &name, float default_value = 0.0f) const;
251 
253  float get_attribute_float_ns(const DomString &namespace_uri, const DomString &local_name, float default_value = 0.0f) const;
254 
256  void set_attribute_int(const DomString &name, int value);
257 
259  void set_attribute_int_ns(const DomString &namespace_uri, const DomString &qualified_name, int value);
260 
262  void set_attribute_bool(const DomString &name, bool value);
263 
265  void set_attribute_bool_ns(const DomString &namespace_uri, const DomString &qualified_name, bool value);
266 
268  void set_attribute_float(const DomString &name, float value, int num_decimal_places = 6);
269 
271  void set_attribute_float_ns(const DomString &namespace_uri, const DomString &qualified_name, float value, int num_decimal_places = 6);
273 };
274 
275 }
276 
void set_attribute_float_ns(const DomString &namespace_uri, const DomString &qualified_name, float value, int num_decimal_places=6)
Sets the attribute node with the specified qualified name and namespace to the given floating-point v...
DomString get_child_string(const DomString &name, const DomString &default_value=DomString()) const
Returns the text value of the child node with the given tag name.
void set_child_int(const DomString &name, int value)
Sets the child node with the specified tag name to the given integer value.
bool has_attribute(const DomString &name) const
Returns true if the element has the specified attribute.
void set_child_string_ns(const DomString &namespace_uri, const DomString &qualified_name, const DomString &value)
Sets the child node with the specified qualified name and namespace to the given text value.
DomAttr get_attribute_node_ns(const DomString &namespace_uri, const DomString &local_name) const
void remove_attribute(const DomString &name)
Removes an attribute by name.
std::string get_text() const
Returns the text of all child Text nodes appended together.
DomAttr set_attribute_node(const DomAttr &attr)
Set attribute node.
DomElement get_next_sibling_element() const
Returns the next sibling node that is an element node.
std::shared_ptr< DomNode_Impl > impl
Definition: dom_node.h:422
DOM Document class.
Definition: dom_document.h:65
void set_child_bool(const DomString &name, bool value)
Sets the child node with the specified tag name to the given boolean value.
void set_attribute_int(const DomString &name, int value)
Sets the attribute node with the specified tag name to the given integer value.
void set_child_string(const DomString &name, const DomString &value)
Sets the child node with the specified tag name to the given text value.
bool get_child_bool_ns(const DomString &namespace_uri, const DomString &local_name, bool default_value=false) const
Returns the boolean value of the child node with the given local name and namespace.
int get_child_int_ns(const DomString &namespace_uri, const DomString &local_name, int default_value=0) const
Returns the integer value of the child node with the given local name and namespace.
void set_attribute_int_ns(const DomString &namespace_uri, const DomString &qualified_name, int value)
Sets the attribute node with the specified qualified name and namespace to the given integer value.
int get_attribute_int(const DomString &name, int default_value=0) const
Returns the integer value of the attribute node with the given tag name.
DomAttr set_attribute_node_ns(const DomAttr &attr)
Set attribute node ns.
DomElement(DomDocument &doc, const DomString &tag_name, const DomString &namespace_uri=DomString())
bool get_attribute_bool_ns(const DomString &namespace_uri, const DomString &local_name, bool default_value=false) const
Returns the boolean value of the attribute node with the given local name and namespace.
bool get_child_bool(const DomString &name, bool default_value=false) const
Returns the boolean value of the child node with the given tag name.
DomString get_attribute_ns(const DomString &namespace_uri, const DomString &local_name) const
Returns the specified attribute.
DomNodeList get_elements_by_tag_name_ns(const DomString &namespace_uri, const DomString &local_name)
DOM Node class.
Definition: dom_node.h:71
int get_attribute_int_ns(const DomString &namespace_uri, const DomString &local_name, int default_value=0) const
Returns the integer value of the attribute node with the given local name and namespace.
void set_child_int_ns(const DomString &namespace_uri, const DomString &qualified_name, int value)
Sets the child node with the specified qualified name and namespace to the given integer value.
DomElement(const std::shared_ptr< DomNode_Impl > &impl)
Constructs a DomElement.
DomString get_tag_name() const
Returns the name of the element.
DOM Node List class.
Definition: dom_node_list.h:51
DomAttr get_attribute_node(const DomString &name) const
Get attribute node.
DomString get_attribute(const DomString &name) const
Returns the specified attribute.
void set_child_bool_ns(const DomString &namespace_uri, const DomString &qualified_name, bool value)
Sets the child node with the specified qualified name and namespace to the given boolean value.
void set_attribute_float(const DomString &name, float value, int num_decimal_places=6)
Sets the attribute node with the specified tag name to the given floating-point value.
DomString get_attribute(const DomString &name, const DomString &default_value) const
Get attribute.
Definition: clanapp.h:36
void set_attribute_bool_ns(const DomString &namespace_uri, const DomString &qualified_name, bool value)
Sets the attribute node with the specified qualified name and namespace to the given boolean value.
void remove_attribute_ns(const DomString &namespace_uri, const DomString &local_name)
int get_child_int(const DomString &name, int default_value=0) const
Returns the integer value of the child node with the given tag name.
std::string DomString
Definition: dom_string.h:37
bool has_attribute_ns(const DomString &namespace_uri, const DomString &local_name) const
Returns true if the element has the specified attribute.
float get_attribute_float_ns(const DomString &namespace_uri, const DomString &local_name, float default_value=0.0f) const
Returns the floating-point value of the attribute node with the given local name and namespace.
bool get_attribute_bool(const DomString &name, bool default_value=false) const
Returns the boolean value of the attribute node with the given tag name.
void set_attribute_ns(const DomString &namespace_uri, const DomString &qualified_name, const DomString &value)
DomNodeList get_elements_by_tag_name(const DomString &name)
Returns a NodeList of all descendant elements with a given tag name.
void set_attribute_bool(const DomString &name, bool value)
Sets the attribute node with the specified tag name to the given boolean value.
DomElement get_first_child_element() const
Returns the first child node that is an element node.
float get_attribute_float(const DomString &name, float default_value=0.0f) const
Returns the floating-point value of the attribute node with the given tag name.
DOM Attribute class.
Definition: dom_attr.h:67
DOM Element class.
Definition: dom_element.h:60
DomElement()
Constructs a DOM Element handle.
void set_attribute(const DomString &name, const DomString &value)
Adds a new attribute.
DomString get_attribute_ns(const DomString &namespace_uri, const DomString &local_name, const DomString &default_value) const
DomString get_child_string_ns(const DomString &namespace_uri, const DomString &local_name, const DomString &default_value=DomString()) const
Returns the text value of the child node with the given local name and namespace.