Add operator[] for xml_node, ensure child, more convinently for config updating

This commit is contained in:
halx99 2019-01-12 01:28:12 +08:00
parent 9fcae40bb5
commit 8fbb70f3e5
2 changed files with 11 additions and 0 deletions

View File

@ -5482,6 +5482,14 @@ namespace pugi
return (_root && _root->value) ? _root->value + 0 : PUGIXML_TEXT("");
}
PUGI__FN xml_node xml_node::operator[](const char_t* name)
{
if (!_root) return xml_node();
auto node = this->child(name);
if (node) return node;
return this->append_child(name);
}
PUGI__FN xml_node xml_node::child(const char_t* name_) const
{
if (!_root) return xml_node();

View File

@ -510,6 +510,9 @@ namespace pugi
// Get text object for the current node
xml_text text() const;
// Ensure child, more convinently for config updating
xml_node operator[](const char_t* name);
// Get child, attribute or next/previous sibling with the specified name
xml_node child(const char_t* name) const;
xml_attribute attribute(const char_t* name) const;