bool Parse(const QByteArray& rss, Visitor& visitor) { Dbg("Parsing rss feed in %1% bytes", rss.size()); QXmlStreamReader xml(rss); if (!xml.readNextStartElement() || xml.name() != RSS::FEED) { Dbg("Invalid rss content"); return false; } while (xml.readNextStartElement()) { const QStringRef tag = xml.name(); if (tag == RSS::ENTRY) { const Entry entry = ParseEntry(xml); visitor.OnEntry(entry); } else { xml.skipCurrentElement(); } } return !xml.error(); }