XmlNode::get_children, to get a list of matching children instead of the first
This commit is contained in:
@@ -162,6 +162,17 @@ XmlNode* XmlNode::get_child(const std::string& name, const std::string& xmlns) c
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<XmlNode*> XmlNode::get_children(const std::string& name, const std::string& xmlns) const
|
||||||
|
{
|
||||||
|
std::vector<XmlNode*> res;
|
||||||
|
for (auto& child: this->children)
|
||||||
|
{
|
||||||
|
if (child->name == name && child->get_tag("xmlns") == xmlns)
|
||||||
|
res.push_back(child);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
XmlNode* XmlNode::add_child(XmlNode* child)
|
XmlNode* XmlNode::add_child(XmlNode* child)
|
||||||
{
|
{
|
||||||
child->parent = this;
|
child->parent = this;
|
||||||
|
|||||||
@@ -86,9 +86,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
std::string get_tail() const;
|
std::string get_tail() const;
|
||||||
/**
|
/**
|
||||||
* Get a pointer to the first child element with that name
|
* Get a pointer to the first child element with that name and that xml namespace
|
||||||
*/
|
*/
|
||||||
XmlNode* get_child(const std::string& name, const std::string& xmlns) const;
|
XmlNode* get_child(const std::string& name, const std::string& xmlns) const;
|
||||||
|
/**
|
||||||
|
* Get a vector of all the children that have that name and that xml namespace.
|
||||||
|
*/
|
||||||
|
std::vector<XmlNode*> get_children(const std::string& name, const std::string& xmlns) const;
|
||||||
/**
|
/**
|
||||||
* Add a node child to this node. Assign this node to the child’s parent.
|
* Add a node child to this node. Assign this node to the child’s parent.
|
||||||
* Returns a pointer to the newly added child.
|
* Returns a pointer to the newly added child.
|
||||||
|
|||||||
Reference in New Issue
Block a user