Example #1
0
 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();
 }