11#include <boost/iterator.hpp>
12#include <boost/iterator/function_input_iterator.hpp>
13#include <boost/range.hpp>
26 boost::single_pass_traversal_tag,
31 const QString TagName_;
36 : Elem_ { firstChild }
37 , TagName_ { tagName }
43 Elem_ = Elem_.nextSiblingElement (TagName_);
53 return Elem_ == other.Elem_;
84 inline auto DomChildren (
const QDomNode& parent,
const QString& tag)
86 auto child = parent.firstChildElement (tag);
87 return boost::make_iterator_range<detail::DomSiblingsIterator> ({ child, tag }, {});
DomSiblingsIterator()=default
DomSiblingsIterator(const QDomElement &firstChild, const QString &tagName)
bool equal(const DomSiblingsIterator &other) const
const QDomElement & dereference() const
auto DomChildren(const QDomNode &parent, const QString &tag)
Creates a range iterating over direct children named tag.