32 #include <boost/iterator.hpp> 33 #include <boost/iterator/function_input_iterator.hpp> 34 #include <boost/range.hpp> 35 #include <QDomElement> 47 boost::single_pass_traversal_tag,
52 const QString TagName_;
57 : Elem_ { firstChild }
58 , TagName_ { tagName }
64 Elem_ = Elem_.nextSiblingElement (TagName_);
74 return Elem_ == other.Elem_;
105 inline auto DomChildren (
const QDomElement& parent,
const QString& tag)
107 auto child = parent.firstChildElement (tag);
108 return boost::make_iterator_range<detail::DomSiblingsIterator> ({ child, tag }, {});
DomSiblingsIterator(const QDomElement &firstChild, const QString &tagName)
bool equal(const DomSiblingsIterator &other) const
auto DomChildren(const QDomElement &parent, const QString &tag)
Creates a range iterating over direct children named tag.
DomSiblingsIterator()=default
const QDomElement & dereference() const