bool XmlStreamParser::moveToNext(QString qName, void (*callback)()) { if (atEnd()) { return false; } bool found = false; readNextStartElement(); nextElementDo(callback); while ( !(atEnd() || found)) { if (_reader->isStartElement()) { found = isAtBeginningOf(qName); if ( !found) { skipCurrentElement(); readNext(); } } else { if ( !readNextStartElement()) { break; } nextElementDo(callback); } } return found; }
Fraction XmlReader::readFraction() { Q_ASSERT(tokenType() == QXmlStreamReader::StartElement); int z = attribute("z", "0").toInt(); int n = attribute("n", "0").toInt(); skipCurrentElement(); return Fraction(z, n); }
void XmlReader::unknown() { if (QXmlStreamReader::error()) qDebug("StreamReaderError: %s", qPrintable(errorString())); qDebug("%s: xml read error at line %lld col %lld: %s", qPrintable(docName), lineNumber(), columnNumber(), name().toUtf8().data()); skipCurrentElement(); }
QSizeF XmlReader::readSize() { Q_ASSERT(tokenType() == QXmlStreamReader::StartElement); QSizeF p; p.setWidth(doubleAttribute("w", 0.0)); p.setHeight(doubleAttribute("h", 0.0)); skipCurrentElement(); return p; }
QColor XmlReader::readColor() { Q_ASSERT(tokenType() == QXmlStreamReader::StartElement); QColor c; c.setRed(intAttribute("r")); c.setGreen(intAttribute("g")); c.setBlue(intAttribute("b")); c.setAlpha(intAttribute("a", 255)); skipCurrentElement(); return c; }
QRectF XmlReader::readRect() { Q_ASSERT(tokenType() == XmlStreamReader::StartElement); QRectF p; p.setX(doubleAttribute("x", 0.0)); p.setY(doubleAttribute("y", 0.0)); p.setWidth(doubleAttribute("w", 0.0)); p.setHeight(doubleAttribute("h", 0.0)); skipCurrentElement(); return p; }
void XmlReader::unknown() { if (QXmlStreamReader::error()) qDebug("%s ", qPrintable(errorString())); if (!docName.isEmpty()) qDebug("tag in <%s> line %lld col %lld: %s", qPrintable(docName), lineNumber(), columnNumber(), name().toUtf8().data()); else qDebug("tag; line %lld col %lld: %s", lineNumber(), columnNumber(), name().toUtf8().data()); skipCurrentElement(); }
void XmlNoteReader::read() { if( !this->QXmlStreamReader::device()) { qDebug("XmlNoteReader::read failed: input device NULL"); return; } // skip everything until <note-content> while(!atEnd()) { readNext(); if(name() == "note-content") { if(!document_) // if no document_ set where note content can be written into skipCurrentElement(); else readContent(); } else if(name() == "id" || name() == "uuid") // only "id" is written { QString idStr = readElementText(); uuid_ = parseUuid(idStr); } else if(name() == "title") { title_ = readElementText(); } else if(name() == "last-change-date") { lastChange_ = QDateTime::fromString(readElementText(),Qt::ISODate); } else if(name() == "last-metadata-change") { lastMetadataChange_ = QDateTime::fromString(readElementText(),Qt::ISODate); } else if(name() == "create-date") { createDate_ = QDateTime::fromString(readElementText(),Qt::ISODate); } else if(name() == "tag") { tag_ = readElementText(); } if (QXmlStreamReader::hasError()) { qDebug("XmlNoteReader::read failed: Error reading xml content"); return; } } }
void XbelReader::readXBEL(BookmarkNode *parent) { Q_ASSERT(isStartElement() && name() == QLatin1String("xbel")); while (readNextStartElement()) { if (name() == QLatin1String("folder")) readFolder(parent); else if (name() == QLatin1String("bookmark")) readBookmarkNode(parent); else if (name() == QLatin1String("separator")) readSeparator(parent); else skipCurrentElement(); } }
void XbelReader::readBookmarkNode(BookmarkNode *parent) { Q_ASSERT(isStartElement() && name() == QLatin1String("bookmark")); BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark, parent); bookmark->url = attributes().value(QLatin1String("href")).toString(); while (readNextStartElement()) { if (name() == QLatin1String("title")) readTitle(bookmark); else if (name() == QLatin1String("desc")) readDescription(bookmark); else skipCurrentElement(); } if (bookmark->title.isEmpty()) bookmark->title = QObject::tr("Unknown title"); }
bool XmlStreamParser::moveToEndOf(QString qName) { bool found = false; while ( !(atEnd() || found)) { if (_reader->isEndElement()) { found = isAtEndOf(qName); if ( !found) { _reader->readNext(); } } else { if (_reader->isStartElement()) { skipCurrentElement(); } _reader->readNext(); } } return found; }
void XbelReader::readFolder(BookmarkNode *parent) { Q_ASSERT(isStartElement() && name() == QLatin1String("folder")); BookmarkNode *folder = new BookmarkNode(BookmarkNode::Folder, parent); folder->expanded = (attributes().value(QLatin1String("folded")) == QLatin1String("no")); while (readNextStartElement()) { if (name() == QLatin1String("title")) readTitle(folder); else if (name() == QLatin1String("desc")) readDescription(folder); else if (name() == QLatin1String("folder")) readFolder(folder); else if (name() == QLatin1String("bookmark")) readBookmarkNode(folder); else if (name() == QLatin1String("separator")) readSeparator(folder); else skipCurrentElement(); } }
void YTFeedReader::readEntry() { Video* video = new Video(); while (!atEnd()) { readNext(); /* qDebug() << name(); QXmlStreamAttribute attribute; foreach (attribute, attributes()) qDebug() << attribute.name() << ":" << attribute.value(); */ if (isEndElement() && name() == QLatin1String("entry")) break; if (isStartElement()) { if (name() == QLatin1String("link") && attributes().value("rel").toString() == QLatin1String("alternate") && attributes().value("type").toString() == QLatin1String("text/html") ) { QString webpage = attributes().value("href").toString(); webpage.remove("&feature=youtube_gdata"); video->setWebpage(webpage); } else if (name() == QLatin1String("author")) { while(readNextStartElement()) if (name() == QLatin1String("name")) { QString author = readElementText(); video->setChannelTitle(author); } else if (name() == QLatin1String("userId")) { QString userId = readElementText(); video->setChannelId(userId); } else skipCurrentElement(); } else if (name() == QLatin1String("published")) { video->setPublished(QDateTime::fromString(readElementText(), Qt::ISODate)); } else if (namespaceUri() == QLatin1String("http://gdata.youtube.com/schemas/2007") && name() == QLatin1String("statistics")) { QString viewCount = attributes().value("viewCount").toString(); video->setViewCount(viewCount.toInt()); } else if (namespaceUri() == QLatin1String("http://search.yahoo.com/mrss/") && name() == QLatin1String("group")) { // read media group while (!atEnd()) { readNext(); if (isEndElement() && name() == QLatin1String("group")) break; if (isStartElement()) { if (name() == QLatin1String("thumbnail")) { // qDebug() << "Thumb: " << attributes().value("url").toString(); QStringRef name = attributes().value("yt:name"); if (name == QLatin1String("mqdefault")) video->setThumbnailUrl( attributes().value("url").toString()); else if (name == QLatin1String("hqdefault")) video->setMediumThumbnailUrl( attributes().value("url").toString()); } else if (name() == QLatin1String("title")) { QString title = readElementText(); // qDebug() << "Title: " << title; video->setTitle(title); } else if (name() == QLatin1String("description")) { QString desc = readElementText(); // qDebug() << "Description: " << desc; video->setDescription(desc); } else if (name() == QLatin1String("duration")) { QString duration = attributes().value("seconds").toString(); // qDebug() << "Duration: " << duration; video->setDuration(duration.toInt()); } else if (name() == QLatin1String("license")) { QString license = readElementText(); // qDebug() << "License: " << license; if (license == QLatin1String("cc")) video->setLicense(Video::LicenseCC); } } } } } } videos.append(video); }