18 pugi::xpath_node_set::type_t
type()
const;
31 void sort(
bool reverse =
false);
39 Search(std::shared_ptr<pugi::xml_document> doc, pugi::xpath_node_set set);
40 std::shared_ptr<pugi::xml_document> doc;
41 pugi::xpath_node_set search;
50 void setName(
const std::string & name);
58 operator bool()
const;
71 this->attr.set_value(
ofToString(value).c_str());
75 Attribute(
const pugi::xml_attribute & attr);
76 pugi::xml_attribute attr;
84 if(range.begin() != range.end()){
85 return It(doc, *range.begin());
87 return It(doc,
typename It::Node());
90 It
end()
const {
return It(doc,
typename It::Node()); }
93 Range(std::shared_ptr<pugi::xml_document> doc, pugi::xml_object_range<typename It::Base> range)
94 :doc(doc), range(range){}
95 std::shared_ptr<pugi::xml_document> doc;
96 pugi::xml_object_range<typename It::Base> range;
102 bool load(
const of::filesystem::path & file);
104 bool parse(
const std::string & xmlStr);
105 bool save(
const of::filesystem::path & file)
const;
107 std::string
toString(
const std::string & indent =
"\t")
const;
117#if PUGIXML_VERSION>=170
162 Search
find(
const std::string & path)
const;
166 return ofFromString<T>(this->xml.text().as_string());
173 void set(
const T & value){
175 xml = doc->append_child(pugi::node_element);
177 auto child = this->xml.first_child();
179 child = this->xml.append_child(pugi::node_pcdata);
181 if(child.type() == pugi::node_pcdata || child.type() == pugi::node_cdata){
186 void set(
const unsigned char & value){
188 xml = doc->append_child(pugi::node_element);
190 auto child = this->xml.first_child();
192 child = this->xml.append_child(pugi::node_pcdata);
194 if(child.type() == pugi::node_pcdata || child.type() == pugi::node_cdata){
195 child.set_value(
ofToString(
int(value)).c_str());
200 void setName(
const std::string & name);
208 operator bool()
const;
211 ofXml(std::shared_ptr<pugi::xml_document> doc,
const pugi::xml_node & xml);
212 std::shared_ptr<pugi::xml_document> doc;
215 template<
typename It>
228 return this->xml.xml == rhs.xml.xml;
232 return this->xml.xml != rhs.xml.xml;
252 if( std::is_same<Base, pugi::xml_named_node_iterator>::value ){
262 if( std::is_same<Base, pugi::xml_named_node_iterator>::value ){
271 if( std::is_same<Base, pugi::xml_named_node_iterator>::value ){
281 if( std::is_same<Base, pugi::xml_named_node_iterator>::value ){
293 ofXmlIterator(std::shared_ptr<pugi::xml_document> doc,
const pugi::xml_node & xml)
313 return this->attr == rhs.attr;
317 return this->attr != rhs.attr;
358 typedef pugi::xml_attribute_iterator
Base;
359 typedef pugi::xml_attribute
Node;
395 ofXmlSearchIterator(std::shared_ptr<pugi::xml_document> doc,
const pugi::xpath_node * node)
399 xml =
ofXml(doc, node->node());
402 const pugi::xpath_node * node =
nullptr;
Base class for ofParameter, ofReadOnlyParameter and ofParameterGroup.
Definition ofParameter.h:24
Definition ofFileUtils.h:15
std::string getValue() const
Definition ofXml.cpp:281
float getFloatValue() const
Definition ofXml.cpp:301
bool getBoolValue() const
Definition ofXml.cpp:317
void setName(const std::string &name)
Definition ofXml.cpp:285
ofXml::Attribute & operator=(const T &value)
Definition ofXml.h:64
int getIntValue() const
Definition ofXml.cpp:293
std::string getName() const
Definition ofXml.cpp:289
double getDoubleValue() const
Definition ofXml.cpp:309
Attribute getPreviousAttribute() const
Definition ofXml.cpp:329
Attribute getNextAttribute() const
Definition ofXml.cpp:325
unsigned int getUintValue() const
Definition ofXml.cpp:297
Attribute()
Definition ofXml.h:47
Attribute & set(const T &value)
Definition ofXml.h:70
It begin() const
Definition ofXml.h:83
It end() const
Definition ofXml.h:90
void sort(bool reverse=false)
Definition ofXml.cpp:362
Search()
Definition ofXml.h:15
bool empty() const
Definition ofXml.cpp:372
ofXmlSearchIterator end() const
Definition ofXml.cpp:357
size_t size() const
Definition ofXml.cpp:343
ofXml operator[](size_t index) const
Definition ofXml.cpp:348
ofXml getFirst() const
Definition ofXml.cpp:367
pugi::xpath_node_set::type_t type() const
Definition ofXml.cpp:338
ofXmlSearchIterator begin() const
Definition ofXml.cpp:353
ofXml::Attribute * operator->()
Definition ofXml.h:332
const ofXml::Attribute & operator*() const
Definition ofXml.h:320
bool operator!=(const ofXmlAttributeIterator &rhs) const
Definition ofXml.h:316
pugi::xml_attribute Node
Definition ofXml.h:359
ofXmlAttributeIterator operator++(int)
Definition ofXml.h:341
bool operator==(const ofXmlAttributeIterator &rhs) const
Definition ofXml.h:312
ofXmlAttributeIterator operator--(int)
Definition ofXml.h:352
pugi::xml_attribute_iterator Base
Definition ofXml.h:358
const ofXmlAttributeIterator & operator++()
Definition ofXml.h:336
ofXml::Attribute & operator*()
Definition ofXml.h:328
const ofXmlAttributeIterator & operator--()
Definition ofXml.h:347
ofXmlAttributeIterator()
Definition ofXml.h:309
const ofXml::Attribute * operator->() const
Definition ofXml.h:324
ofXml getLastChild() const
Definition ofXml.cpp:160
ofXml appendChild(const ofXml &xml)
Definition ofXml.cpp:94
bool load(const of::filesystem::path &file)
Definition ofXml.cpp:18
bool save(const of::filesystem::path &file) const
Definition ofXml.cpp:51
Attribute prependAttribute(const std::string &name)
Definition ofXml.cpp:188
Attribute getAttribute(const std::string &name) const
Definition ofXml.cpp:168
ofXml getChild(const std::string &name) const
Definition ofXml.cpp:82
ofXml findFirst(const std::string &path) const
Definition ofXml.cpp:209
Attribute appendAttribute(const std::string &name)
Definition ofXml.cpp:184
unsigned int getUintValue() const
Definition ofXml.cpp:245
ofXml insertChildAfter(const std::string &name, const ofXml &after)
Definition ofXml.cpp:124
void clear()
Definition ofXml.cpp:66
void set(const T &value)
Definition ofXml.h:173
float getFloatValue() const
Definition ofXml.cpp:249
bool getBoolValue() const
Definition ofXml.cpp:265
Attribute getLastAttribute() const
Definition ofXml.cpp:180
bool parse(const std::string &xmlStr)
Definition ofXml.cpp:36
void setName(const std::string &name)
Definition ofXml.cpp:234
bool removeAttribute(const std::string &name)
Definition ofXml.cpp:192
int getIntValue() const
Definition ofXml.cpp:241
Attribute getFirstAttribute() const
Definition ofXml.cpp:176
ofXml prependChild(const ofXml &xml)
Definition ofXml.cpp:98
ofXml getParent() const
Definition ofXml.cpp:164
ofXml getNextSibling() const
Definition ofXml.cpp:140
void set(const unsigned char &value)
Definition ofXml.h:186
ofXml getPreviousSibling() const
Definition ofXml.cpp:144
T getValue() const
Definition ofXml.h:165
bool removeChild(const ofXml &node)
Definition ofXml.cpp:136
Range< ofXmlIterator< pugi::xml_node_iterator > > getChildren() const
Definition ofXml.cpp:86
ofXml()
Definition ofXml.cpp:7
Search find(const std::string &path) const
Definition ofXml.cpp:217
ofXml insertChildBefore(const std::string &name, const ofXml &after)
Definition ofXml.cpp:128
std::string toString(const std::string &indent="\t") const
Definition ofXml.cpp:71
Range< ofXmlAttributeIterator > getAttributes() const
Definition ofXml.cpp:172
ofXml getFirstChild() const
Definition ofXml.cpp:156
std::string getName() const
Definition ofXml.cpp:230
double getDoubleValue() const
Definition ofXml.cpp:257
Attribute setAttribute(const std::string &name, const T &value)
Definition ofXml.h:152
ofXmlIterator()
Definition ofXml.h:224
ofXml & operator*()
Definition ofXml.h:243
pugi::xml_node Node
Definition ofXml.h:289
It Base
Definition ofXml.h:288
ofXmlIterator operator--(int)
Definition ofXml.h:279
bool operator!=(const ofXmlIterator &rhs) const
Definition ofXml.h:231
const ofXml * operator->() const
Definition ofXml.h:239
ofXmlIterator operator++(int)
Definition ofXml.h:260
const ofXmlIterator & operator--()
Definition ofXml.h:270
bool operator==(const ofXmlIterator &rhs) const
Definition ofXml.h:227
ofXml * operator->()
Definition ofXml.h:247
const ofXml & operator*() const
Definition ofXml.h:235
const ofXmlIterator & operator++()
Definition ofXml.h:251
bool operator==(const ofXmlSearchIterator &rhs) const
Definition ofXml.cpp:386
const ofXmlSearchIterator & operator++()
Definition ofXml.cpp:402
ofXmlSearchIterator()
Definition ofXml.cpp:383
bool operator!=(const ofXmlSearchIterator &rhs) const
Definition ofXml.cpp:390
const ofXmlSearchIterator & operator--()
Definition ofXml.cpp:422
ofXml & operator*() const
Definition ofXml.cpp:394
ofXml * operator->() const
Definition ofXml.cpp:398
std::string ofToString(const T &)
Convert a value to a string.
Definition ofUtils.h:657
void ofDeserialize(const ofXml &xml, ofAbstractParameter ¶meter)
Definition ofXml.cpp:471
void ofSerialize(ofXml &xml, const ofAbstractParameter ¶meter)
Definition ofXml.cpp:442