10 #include <QDomDocument> 16 QDomDocument& document,
17 const QString& elementName,
18 const std::function<QString (QDomElement)>& tagGetter,
19 const std::function<
void (QDomElement&, QString)>& tagSetter)
22 return node.toElement ();
24 const auto& tag = tags.value (0);
27 auto elements = node.childNodes ();
28 for (
int i = 0; i < elements.size (); ++i)
30 auto elem = elements.at (i).toElement ();
31 if (tagGetter (elem) == tag)
33 document, elementName,
34 tagGetter, tagSetter);
37 auto result = document.createElement (elementName);
38 tagSetter (result, tag);
39 node.appendChild (result);
41 document, elementName,
42 tagGetter, tagSetter);
QDomElement BuildTagsTree(QStringList tags, QDomNode &node, QDomDocument &document, const QString &elementName, const std::function< QString(QDomElement)> &tagGetter, const std::function< void(QDomElement &, QString)> &tagSetter)
Builds a nested sequence of DOM elements representing a list of tags.