bool DirectParser::Read (DirectMessage & msg) { msg.Clear (); if (!bufLock.tryLock (5000)) { qDebug () << "WARNING: Mutex locked 5 seconds, giving up"; return false; } QXmlStreamReader xread (&inbuf); QXmlStreamReader::TokenType tokt; bool finished (false); bool complete (false); bool good (false); bool badData (false); QString topname; QString bottomtag; QString version; qint64 offset (0); while (!finished) { tokt = ReadNext (xread); offset = xread.characterOffset (); qDebug () << " Direct token " << xread.tokenString(); switch (tokt) { case QXmlStreamReader::NoToken : qDebug () << " no token found"; finished = true; complete = false; good = false; lastErr = Proto_EmptyInput; break; case QXmlStreamReader::Invalid : qDebug () << " bad token"; qDebug () << " text until here: " << inbuf.buffer().left(offset); finished = true; complete = false; good = false; lastErr = Proto_BadTag; badData = true; break; case QXmlStreamReader::StartElement: topname = xread.name().toString().toLower(); if (topname == oldTopTag) { ParseOld (xread, msg, offset, complete, good); msg.SetAttribute ("version","0.1"); } else if (topname == topTag) { version = xread.documentVersion ().toString(); msg.SetAttribute ("version",version); ParseMessage (xread, msg, offset, complete, good); } else { qDebug () << " topname unknown: " << topname; finished = true; complete = false; good = false; lastErr = Proto_WrongProtocol; } break; case QXmlStreamReader::EndElement: bottomtag = xread.name().toString().toLower(); if (bottomtag == topname) { finished = true; } break; case QXmlStreamReader::EndDocument : finished = true; break; case QXmlStreamReader::Characters: break; case QXmlStreamReader::StartDocument: case QXmlStreamReader::Comment: case QXmlStreamReader::DTD: case QXmlStreamReader::EntityReference: case QXmlStreamReader::ProcessingInstruction: break; default: qDebug () << " unknown token type " << tokt; lastErr = Proto_Unknown; finished = true; complete = false; good = false; break; } } if (good && complete) { /// we have consumed a message, so get rid of the raw data /// so we can read the next message next time qDebug () << " trailing token " << xread.tokenString (); while (!xread.atEnd() && xread.tokenType() != QXmlStreamReader::EndDocument) { xread.readNext(); qDebug () << " consumed " << xread.tokenString (); } qDebug () << " remove " << offset << " bytes from buffer: "; qDebug () << inbuf.buffer().left(offset); inbuf.buffer().remove (0,offset+1); inbuf.seek (0); } else { msg.Clear (); } qDebug () << " after DirectParser::Read buffer has [[" << inbuf.buffer() << "]]"; qDebug () << " token " << xread.tokenString() << " error " << xread.error(); if (!good) { if (xread.error () == QXmlStreamReader::PrematureEndOfDocumentError) { complete = false; good = true; } } lastComplete = complete; lastGood = good; bufLock.unlock (); return good && complete; }
int CVBAOptions::fromXml(QXmlStreamReader& XmlReader) { /* Emulator-spezifische Optionen einlesen */ while(!XmlReader.atEnd()) { XmlReader.readNext(); if(XmlReader.isStartElement()) { if(XmlReader.qualifiedName().toString()=="commandline") { // Befehlszeile this->setEmuCommand(XmlReader.readElementText()); } else if(XmlReader.qualifiedName().toString()=="fullscreen") { //Vollbildmodus if(XmlReader.readElementText()=="true") this->setFullscreen(true); else this->setFullscreen(false); } else if(XmlReader.qualifiedName().toString()=="scale") { //Fenstervergrößerung this->setScale(XmlReader.readElementText().toShort()); } } else if(XmlReader.isEndElement() && XmlReader.qualifiedName().toString()=="options") { /* Abbruch, wenn Optionen zu Ende sind */ break; // Ende der Optionenliste erreicht } } return 0; }
/*! \fn void ExtensionInfoPrivate::readExtensionInfo(QXmlStreamReader &reader) \internal */ void ExtensionInfoPrivate::readExtensionInfo(QXmlStreamReader &reader) { QString element = reader.name().toString(); if (element != QString(EXTENSION)) { reader.raiseError(QCoreApplication::translate("ExtensionInfo", "Expected element '%1' as top level element").arg(EXTENSION)); return; } name = reader.attributes().value(EXTENSION_NAME).toString(); if (name.isEmpty()) { reader.raiseError(msgAttributeMissing(EXTENSION, EXTENSION_NAME)); return; } version = reader.attributes().value(EXTENSION_VERSION).toString(); if (version.isEmpty()) { reader.raiseError(msgAttributeMissing(EXTENSION, EXTENSION_VERSION)); return; } if (!isValidVersion(version)) { reader.raiseError(msgInvalidFormat(EXTENSION_VERSION)); return; } compatVersion = reader.attributes().value(EXTENSION_COMPATVERSION).toString(); if (!compatVersion.isEmpty() && !isValidVersion(compatVersion)) { reader.raiseError(msgInvalidFormat(EXTENSION_COMPATVERSION)); return; } else if (compatVersion.isEmpty()) { compatVersion = version; } QString experimentalString = reader.attributes().value(EXTENSION_EXPERIMENTAL).toString(); experimental = (experimentalString.compare(QLatin1String("true"), Qt::CaseInsensitive) == 0); if (!experimentalString.isEmpty() && !experimental && experimentalString.compare(QLatin1String("false"), Qt::CaseInsensitive) != 0) { reader.raiseError(msgInvalidFormat(EXTENSION_EXPERIMENTAL)); return; } enabled = !experimental; while (!reader.atEnd()) { reader.readNext(); switch (reader.tokenType()) { case QXmlStreamReader::StartElement: element = reader.name().toString(); if (element == VENDOR) vendor = reader.readElementText().trimmed(); else if (element == COPYRIGHT) copyright = reader.readElementText().trimmed(); else if (element == LICENSE) license = reader.readElementText().trimmed(); else if (element == DESCRIPTION) description = reader.readElementText().trimmed(); else if (element == URL) url = reader.readElementText().trimmed(); else if (element == CATEGORY) category = reader.readElementText().trimmed(); else if (element == DEPENDENCYLIST) readDependencies(reader); else if (element == ARGUMENTLIST) readArgumentDescriptions(reader); else reader.raiseError(msgInvalidElement(name)); break; case QXmlStreamReader::EndDocument: case QXmlStreamReader::Comment: case QXmlStreamReader::EndElement: case QXmlStreamReader::Characters: break; default: reader.raiseError(msgUnexpectedToken()); break; } } }
/** Reads a Base-64 encoded UUID from current XML element; in case of error returns in case of error returns default (all-zero) UUID. */ PwUuid PwStreamUtilsV4::readUuid(QXmlStreamReader& xml) { QString base64Str = xml.readElementText(); PwUuid result = PwUuid::fromBase64(base64Str); Util::safeClear(base64Str); return result; }
/** Reads a string from current XML element. */ QString PwStreamUtilsV4::readString(QXmlStreamReader& xml) { return xml.readElementText(); }
/*! * Parses a Chime BatchUpdateUser response element from \a xml. */ void BatchUpdateUserResponsePrivate::parseBatchUpdateUserResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("BatchUpdateUserResponse")); Q_UNUSED(xml) ///< @todo }
void MetaInfoParser::tokenHandler(QXmlStreamReader &reader) { if (reader.isStartElement() && reader.name() == "metainfo") handleMetaInfoElement(reader); }
/** * @brief Record the details of an XML parse error. * * If \a xml has no error, this effectively clears any existing XML parsing * error. * * @param xml XML reader from which to fetch an parse error code and string. * * @see xmlParseError * @see xmlParseErrorString */ void AwsAbstractResponse::setXmlError(const QXmlStreamReader &xml) { Q_D(AwsAbstractResponse); d->xmlError = xml.error(); d->xmlErrorString = xml.errorString(); }
/*! * Parses a CloudFront DeleteFieldLevelEncryptionProfile response element from \a xml. */ void DeleteFieldLevelEncryptionProfileResponsePrivate::parseDeleteFieldLevelEncryptionProfileResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("DeleteFieldLevelEncryptionProfileResponse")); Q_UNUSED(xml) ///< @todo }
/*! * Parses a AutoScaling DescribeScheduledActions response element from \a xml. */ void DescribeScheduledActionsResponsePrivate::parseDescribeScheduledActionsResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("DescribeScheduledActionsResponse")); Q_UNUSED(xml) ///< @todo }
/** * @brief Convert an XML stream to a hierarchical QVariantMap. * * This function is used internally to embed opaque XML structures, such as the * SQS service's ErrorResponse::Error::Detail, which the SQS schema defines as * an arbitrary complex type. * * @note This static function exists within the AwsAbstractResponse for * historic reasons. It should probably be moved our of this class, and * into a more generic utility space at some point. * * @param xml XML stream to convert. * @param prefix Prefix to apply to special (non-element) child entry names. * @param maxDepth Maximum depth to traverse before truncating the tree. * * @return A QVariantMap representing the \a xml XML fragment. * * @todo Move this toVariant function to somewhere more generic. */ QVariantMap AwsAbstractResponse::toVariant( QXmlStreamReader &xml, const QString &prefix, const int maxDepth) { if (maxDepth < 0) { qWarning() << QObject::tr("max depth exceeded"); return QVariantMap(); } if (xml.hasError()) { qWarning() << xml.errorString(); return QVariantMap(); } if (xml.tokenType() == QXmlStreamReader::NoToken) xml.readNext(); if ((xml.tokenType() != QXmlStreamReader::StartDocument) && (xml.tokenType() != QXmlStreamReader::StartElement)) { qWarning() << QObject::tr("unexpected XML tokenType %1 (%2)") .arg(xml.tokenString()).arg(xml.tokenType()); return QVariantMap(); } QVariantMap map; if (xml.tokenType() == QXmlStreamReader::StartDocument) { map.insert(prefix + QLatin1String("DocumentEncoding"), xml.documentEncoding().toString()); map.insert(prefix + QLatin1String("DocumentVersion"), xml.documentVersion().toString()); map.insert(prefix + QLatin1String("StandaloneDocument"), xml.isStandaloneDocument()); } else { if (!xml.namespaceUri().isEmpty()) map.insert(prefix + QLatin1String("NamespaceUri"), xml.namespaceUri().toString()); foreach (const QXmlStreamAttribute &attribute, xml.attributes()) { QVariantMap attributeMap; attributeMap.insert(QLatin1String("Value"), attribute.value().toString()); if (!attribute.namespaceUri().isEmpty()) attributeMap.insert(QLatin1String("NamespaceUri"), attribute.namespaceUri().toString()); if (!attribute.prefix().isEmpty()) attributeMap.insert(QLatin1String("Prefix"), attribute.prefix().toString()); attributeMap.insert(QLatin1String("QualifiedName"), attribute.qualifiedName().toString()); map.insertMulti(prefix + attribute.name().toString(), attributeMap); } } for (xml.readNext(); (!xml.atEnd()) && (xml.tokenType() != QXmlStreamReader::EndElement) && (xml.tokenType() != QXmlStreamReader::EndDocument); xml.readNext()) { switch (xml.tokenType()) { case QXmlStreamReader::Characters: case QXmlStreamReader::Comment: case QXmlStreamReader::DTD: case QXmlStreamReader::EntityReference: map.insertMulti(prefix + xml.tokenString(), xml.text().toString()); break; case QXmlStreamReader::ProcessingInstruction: map.insertMulti(prefix + xml.processingInstructionTarget().toString(), xml.processingInstructionData().toString()); break; case QXmlStreamReader::StartElement: { const QString elementName = xml.name().toString(); map.insertMulti(elementName, toVariant(xml, prefix, maxDepth-1)); break; } default: qWarning() << QObject::tr("unexpected XML tokenType %1 (%2)") .arg(xml.tokenString()).arg(xml.tokenType()); } } return map; }
PrimitivePtr DataMatrixFactory::generatePrimitive(ObjectStore *store, QXmlStreamReader& xml) { QByteArray data; QString descriptiveName; Q_ASSERT(store); bool doAve=false, doSkip=false; int requestedXStart=0, requestedYStart=0, requestedXCount=-1, requestedYCount=-1, skip=0; double minX=0, minY=0, stepX=1, stepY=1; QString provider, file, field; while (!xml.atEnd()) { const QString n = xml.name().toString(); if (xml.isStartElement()) { if (n == DataMatrix::staticTypeTag) { QXmlStreamAttributes attrs = xml.attributes(); provider = attrs.value("provider").toString(); file = DataPrimitive::readFilename(attrs); field = attrs.value("field").toString(); requestedXStart = attrs.value("reqxstart").toString().toInt(); requestedYStart = attrs.value("reqystart").toString().toInt(); requestedXCount = attrs.value("reqnx").toString().toInt(); requestedYCount = attrs.value("reqny").toString().toInt(); doAve = attrs.value("doave").toString() == "true" ? true : false; doSkip = attrs.value("doskip").toString() == "true" ? true : false; skip = attrs.value("skip").toString().toInt(); minX = attrs.value("xmin").toString().toDouble(); minY = attrs.value("ymin").toString().toDouble(); stepX = attrs.value("xstep").toString().toDouble(); stepY = attrs.value("ystep").toString().toDouble(); if (attrs.value("descriptiveNameIsManual").toString() == "true") { descriptiveName = attrs.value("descriptiveName").toString(); } Object::processShortNameIndexAttributes(attrs); } else { return 0; } } else if (xml.isEndElement()) { if (n == DataMatrix::staticTypeTag) { break; } else { Debug::self()->log(QObject::tr("Error creating Data Matrix from Kst file."), Debug::Warning); return 0; } } xml.readNext(); } if (xml.hasError()) { return 0; } Q_ASSERT(store); DataSourcePtr dataSource = DataSourcePluginManager::findOrLoadSource(store, file); if (!dataSource) { return 0; //Couldn't find a suitable datasource } DataMatrixPtr matrix = store->createObject<DataMatrix>(); matrix->change(dataSource, field, requestedXStart, requestedYStart, requestedXCount, requestedYCount, doAve, doSkip, skip, minX, minY, stepX, stepY); matrix->setDescriptiveName(descriptiveName); matrix->writeLock(); matrix->registerChange(); matrix->unlock(); return matrix; }
/*! * Parses a AlexaForBusiness SendInvitation response element from \a xml. */ void SendInvitationResponsePrivate::parseSendInvitationResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("SendInvitationResponse")); Q_UNUSED(xml) ///< @todo }
RemoteAccount RemoteAccount::Parser::parseXml(QXmlStreamReader& xml) { RemoteAccount remoteaccount; // For specs about the XML provided, see here: // http://www.freedesktop.org/wiki/Specifications/open-collaboration-services-draft#RemoteAccounts while (!xml.atEnd()) { //qDebug() << "XML returned:" << xml.text().toString(); xml.readNext(); if (xml.isStartElement()) { if (xml.name() == "id") { remoteaccount.setId(xml.readElementText()); } else if (xml.name() == "type") { remoteaccount.setType(xml.readElementText()); } else if (xml.name() == "typeid") { // FIXME: change to remoteserviceid sometime soon (OCS API change pending remoteaccount.setRemoteServiceId(xml.readElementText()); } else if (xml.name() == "data") { remoteaccount.setData(xml.readElementText()); } else if (xml.name() == "login") { remoteaccount.setLogin(xml.readElementText()); } else if (xml.name() == "password") { remoteaccount.setPassword(xml.readElementText()); } } else if (xml.isEndElement() && (xml.name() == "remoteaccount" || xml.name() == "user")) { break; } } return remoteaccount; }
/*! * Parses a AppSync UpdateApiKey response element from \a xml. */ void UpdateApiKeyResponsePrivate::parseUpdateApiKeyResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("UpdateApiKeyResponse")); Q_UNUSED(xml) ///< @todo }
void GlobStore::readData(QXmlStreamReader& xml) { int tmp; while (!xml.atEnd()) { xml.readNext(); if (xml.isEndElement()) break; if (xml.name() == "timeMode") { tmp =xml.readElementText().toInt(); timeModeBox->setCurrentIndex(tmp); updateTimeModeBox(tmp); } else if (xml.name() == "switchAtBeat") { tmp =xml.readElementText().toInt(); switchAtBeatBox->setCurrentIndex(tmp); updateSwitchAtBeat(tmp); } else if (xml.name() == "timeModule") { tmp =xml.readElementText().toInt(); if (tmp > -1) timeModuleBox->setCurrentIndex(tmp); updateTimeModule(tmp); } else if (xml.isStartElement() && (xml.name() == "midiControllers")) { midiControl->readData(xml); } else skipXmlElement(xml); } modified = false; }
BlockField::dataGenericBlock::dataGenericBlock(QXmlStreamReader & xml) { QXmlStreamAttributes attributes = xml.attributes(); if(attributes.hasAttribute("id")) { id = attributes.value("id").toInt(); } else { id = -1; } xml.readNext(); // Next element while(!(xml.tokenType() == QXmlStreamReader::EndElement && (xml.name() == "block"))) { if(xml.tokenType() == QXmlStreamReader::StartElement) { if(xml.name() == "adaptors") { xml.readNext(); while(!(xml.tokenType() == QXmlStreamReader::EndElement && xml.name() == "adaptors")) { if(xml.tokenType() == QXmlStreamReader::StartElement && xml.name() == "adaptor") { dataGenericBlock::_adaptor att; QXmlStreamAttributes attributes = xml.attributes(); if(attributes.hasAttribute("end")) { QString end = attributes.value("end").toString(); if(end.compare("3p")) { att.end = dataGenericBlock::_adaptor::p3; } else if (end.compare("5p")) { att.end = dataGenericBlock::_adaptor::p5; } else if (end.compare("both")) { att.end = dataGenericBlock::_adaptor::both; } } else { att.end = dataGenericBlock::_adaptor::both; } xml.readNext(); if(xml.tokenType() == QXmlStreamReader::Characters) { att.sequence = xml.text().toString(); adaptor.append(att); } } xml.readNext(); } } else if(xml.name() == "arguments") { xml.readNext(); while(!(xml.tokenType() == QXmlStreamReader::EndElement && xml.name() == "arguments")) { _file tempFile; tempFile.fileType = _file::invalid; xml.readNext(); if(xml.tokenType() == QXmlStreamReader::StartElement && xml.name() == "argument") { QXmlStreamAttributes attributes = xml.attributes(); if(attributes.hasAttribute("type")) { QString end = attributes.value("type").toString(); if(!end.compare("infile")) { tempFile.fileType = dataGenericBlock::_file::fileIn; } else if (!end.compare("outfile")) { tempFile.fileType = dataGenericBlock::_file::fileOut; } } else { tempFile.fileType = dataGenericBlock::_file::invalid; } //xml.readNext(); while(!(xml.tokenType() == QXmlStreamReader::EndElement && xml.name() == "argument")) { if(xml.tokenType() == QXmlStreamReader::StartElement && xml.name() == "description") { xml.readNext(); if(xml.tokenType() == QXmlStreamReader::Characters) { tempFile.description = xml.text().toString(); } } if(xml.tokenType() == QXmlStreamReader::StartElement && xml.name() == "formats") { while(!(xml.tokenType() == QXmlStreamReader::EndElement && xml.name() == "format")) { xml.readNext(); if(xml.tokenType() == QXmlStreamReader::Characters) { tempFile.format.append(xml.text().toString()); } } } xml.readNext(); } } if(tempFile.fileType != _file::invalid) { argument.append(tempFile); } } } else { QString nameTemp = xml.name().toString(); xml.readNext(); if(xml.tokenType() == QXmlStreamReader::Characters && !xml.text().isEmpty()) { data.insert(nameTemp, xml.text().toString()); } } } else { xml.readNext(); // we dont have StartElement, read next } } if(data.contains("section")) { QString sec = data["section"].split("/")[0]; if(!sec.compare("script")) { type = dataGenericBlock::script; } else if(!sec.compare("sample")) { type = dataGenericBlock::sample; } else { type = dataGenericBlock::invalid; } } else { data["section"] = "other"; } }
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile file("../myXmlStream/my.xml"); if (!file.open(QFile::ReadOnly | QFile::Text)) { qDebug()<<"Error: cannot open file"; return 1; } QXmlStreamReader reader; // 设置文件,这时会将流设置为初始状态 reader.setDevice(&file); // 如果没有读到文档结尾,而且没有出现错误 while (!reader.atEnd()) { // 读取下一个记号,它返回记号的类型 QXmlStreamReader::TokenType type = reader.readNext(); // 下面便根据记号的类型来进行不同的输出 if (type == QXmlStreamReader::StartDocument) qDebug() << reader.documentEncoding() << reader.documentVersion(); if (type == QXmlStreamReader::StartElement) { qDebug() << "<" << reader.name() << ">"; if (reader.attributes().hasAttribute("id")) qDebug() << reader.attributes().value("id"); } if (type == QXmlStreamReader::EndElement) qDebug() << "</" << reader.name() << ">"; if (type == QXmlStreamReader::Characters && !reader.isWhitespace()) qDebug() << reader.text(); } // 如果读取过程中出现错误,那么输出错误信息 if (reader.hasError()) { qDebug() << "error: " << reader.errorString(); } file.close(); return a.exec(); }
void MetaInfoParser::handleNodeItemLibraryEntryElement(QXmlStreamReader &reader, const QString &className, const QIcon &icon) { if (reader.isStartElement() && reader.name() == "itemlibraryentry") { const QString versionNumber = reader.attributes().value("version").toString(); int major = 1; int minor = 0; if (!versionNumber.isEmpty()) { int val; bool ok; if (versionNumber.contains('.')) { val = versionNumber.split('.').first().toInt(&ok); major = ok ? val : major; val = versionNumber.split('.').last().toInt(&ok); minor = ok ? val : minor; } else { val = versionNumber.toInt(&ok); major = ok ? val : major; } } const QString name = reader.attributes().value("name").toString(); ItemLibraryEntry entry; entry.setType(className, major, minor); entry.setName(name); entry.setIcon(icon); QString iconPath = reader.attributes().value("libraryIcon").toString(); if (!iconPath.isEmpty()) entry.setIconPath(iconPath); QString category = reader.attributes().value("category").toString(); if (!category.isEmpty()) entry.setCategory(category); QString requiredImport = reader.attributes().value("requiredImport").toString(); if (!requiredImport.isEmpty()) entry.setRequiredImport(requiredImport); if (reader.attributes().hasAttribute("forceImport")) { QString forceImport = reader.attributes().value("forceImport").toString(); if (forceImport == QLatin1String("true") || forceImport == QLatin1String("True")) entry.setForceImport(true); else entry.setForceImport(false); } else { entry.setForceImport(false); } while (!reader.atEnd() && !(reader.isEndElement() && reader.name() == "itemlibraryentry")) { reader.readNext(); handleItemLibraryEntryPropertyElement(reader, entry); handleItemLibraryEntryQmlElement(reader, entry); } m_metaInfo.itemLibraryInfo()->addEntry(entry); } }
/*! * Parses a ApplicationDiscoveryService StartContinuousExport response element from \a xml. */ void StartContinuousExportResponsePrivate::parseStartContinuousExportResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("StartContinuousExportResponse")); Q_UNUSED(xml) ///< @todo }
static inline QString attributeValue(const QXmlStreamReader &r, const char *name) { return r.attributes().value(QLatin1String(name)).toString(); }
void MyHttpEngine::parseScore(QXmlStreamReader& xml) { QString name; QString description; QString id; /* Let's check that we're really getting a score. */ if(xml.tokenType() != QXmlStreamReader::StartElement && xml.name() == "score") { return; } /* Let's get the attributes for person */ QXmlStreamAttributes attributes = xml.attributes(); /* Next element... */ xml.readNext(); /* * We're going to loop over the things because the order might change. * We'll continue the loop until we hit an EndElement named person. */ while(!(xml.tokenType() == QXmlStreamReader::EndElement && xml.name() == "score")) { if(xml.tokenType() == QXmlStreamReader::StartElement) { /* We've found title. */ if(xml.name() == "title") { xml.readNext(); name = xml.text().toString(); } /* We've found description. */ if(xml.name() == "genre") { xml.readNext(); description = xml.text().toString(); } /* We've found id. */ if(xml.name() == "id") { xml.readNext(); id = xml.text().toString(); } } /* ...and next... */ xml.readNext(); } scoreList.append(new ScoreInfo(name, description, id)); }
/** Reads a Base-64 encoded data array from current XML element; in case of error returns an empty array. */ QByteArray PwStreamUtilsV4::readBase64(QXmlStreamReader& xml) { QByteArray base64Str = xml.readElementText().toLatin1(); QByteArray result = QByteArray::fromBase64(base64Str); Util::safeClear(base64Str); return result; }
/*! * Parses a AppStream CreateStreamingURL response element from \a xml. */ void CreateStreamingURLResponsePrivate::parseCreateStreamingURLResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("CreateStreamingURLResponse")); Q_UNUSED(xml) ///< @todo }
TrainingSetFile::TSFResult TrainingSetFile::fromFile(QFile &file) { QString version, text; QStringRef name; QXmlStreamReader tsReadXML; QXmlStreamReader::TokenType tt; QStringList textElements; QXmlStreamAttributes attributes; TrainingSetFile *retTSF = new TrainingSetFile(); TSFResult res = {retTSF, true, NoError, "", 0}; TrainingSet *ts = retTSF->getTrainingSet(); int lastPatternIndex = 0, sTextElements, pSize = 0, iSize = 0, tSize = 0; Normalization *inor = new Normalization(), *tnor = new Normalization(); vector<vector<double> > inputs, targets; DataRepresentation *idr = ts->getInputsDataRepresentation(), *tdr = ts->getTargetsDataRepresentation(); if(file.open(QIODevice::ReadOnly)){ tsReadXML.setDevice(&file); while (!tsReadXML.atEnd()) { tt = tsReadXML.readNext(); if(tsReadXML.hasError()){ file.close(); return {retTSF, false, toTSFError(tsReadXML.error()), tsReadXML.errorString(), tsReadXML.lineNumber()}; } if(tt == QXmlStreamReader::StartDocument){ continue; }else if(tt == QXmlStreamReader::StartElement){ name = tsReadXML.name(); if(name == STR_TRAININGSET){ attributes = tsReadXML.attributes(); if(attributes.hasAttribute(STR_PATTERNSIZE) && attributes.hasAttribute(STR_INPUTSSIZE) && attributes.hasAttribute(STR_TARGETSSIZE)) { pSize = attributes.value(STR_PATTERNSIZE).toInt(); iSize = attributes.value(STR_INPUTSSIZE).toInt(); tSize = attributes.value(STR_TARGETSSIZE).toInt(); inputs = vector<vector<double> >(pSize, vector<double>(iSize, 0)); targets = vector<vector<double> >(pSize, vector<double>(tSize, 0)); }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Missing attributes (" + STR_PATTERNSIZE + ", " + STR_INPUTSSIZE + ", " + STR_TARGETSSIZE + ") on tag " + STR_TRAININGSET, tsReadXML.lineNumber() }; } }else if(name == STR_PROPERTIES){ attributes = tsReadXML.attributes(); if(attributes.hasAttribute(STR_VERSION)){ version = attributes.value(STR_VERSION).toString(); }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Missing attributes (" + STR_VERSION + ") on tag " + STR_PROPERTIES, tsReadXML.lineNumber() }; } }else if(name == STR_INPUTSDATAREPRESENTATION){ attributes = tsReadXML.attributes(); if(attributes.hasAttribute(STR_NAME) && attributes.hasAttribute(STR_WIDTH) && attributes.hasAttribute(STR_HEIGHT) && attributes.hasAttribute(STR_FORMAT)) { idr->setType(drFromStrToInt(attributes.value(STR_NAME).toString())); idr->setWidth(attributes.value(STR_WIDTH).toInt()); idr->setHeight(attributes.value(STR_HEIGHT).toInt()); idr->setImageFormat(fromStrToImgFormat(attributes.value(STR_FORMAT).toString())); }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Missing attributes (" + STR_NAME + ", " + STR_WIDTH + ", " + STR_HEIGHT + ", " + STR_FORMAT + ") on tag " + STR_INPUTSDATAREPRESENTATION, tsReadXML.lineNumber() }; } }else if(name == STR_TARGETSDATAREPRESENTATION){ attributes = tsReadXML.attributes(); if(attributes.hasAttribute(STR_NAME) && attributes.hasAttribute(STR_WIDTH) && attributes.hasAttribute(STR_HEIGHT) && attributes.hasAttribute(STR_FORMAT)) { tdr->setType(drFromStrToInt(attributes.value(STR_NAME).toString())); tdr->setWidth(attributes.value(STR_WIDTH).toInt()); tdr->setHeight(attributes.value(STR_HEIGHT).toInt()); tdr->setImageFormat(fromStrToImgFormat(attributes.value(STR_FORMAT).toString())); }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Missing attributes (" + STR_NAME + ", " + STR_WIDTH + ", " + STR_HEIGHT + ", " + STR_FORMAT + ") on tag " + STR_TARGETSDATAREPRESENTATION, tsReadXML.lineNumber() }; } }else if(name == STR_INPUTSNORMALIZATION){ attributes = tsReadXML.attributes(); if(attributes.hasAttribute(STR_TYPE) && attributes.hasAttribute(STR_MAXVALUE) && attributes.hasAttribute(STR_MINVALUE) && attributes.hasAttribute(STR_THRESHOLD) && attributes.hasAttribute(STR_AMPLITUDE) && attributes.hasAttribute(STR_ELONGATION)) { inor->setType(normFromStrToInt(attributes.value(STR_TYPE).toString())); inor->setMaxValue(attributes.value(STR_MAXVALUE).toDouble()); inor->setMinValue(attributes.value(STR_MINVALUE).toDouble()); inor->setThreshold(attributes.value(STR_THRESHOLD).toDouble()); inor->setAmplitude(attributes.value(STR_AMPLITUDE).toDouble()); inor->setElongation(attributes.value(STR_ELONGATION).toDouble()); }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Missing attributes (" + STR_TYPE + ", " + STR_MAXVALUE + ", " + STR_MINVALUE + ", " + STR_THRESHOLD + ", " + STR_ELONGATION + ") on tag " + STR_INPUTSNORMALIZATION, tsReadXML.lineNumber() }; } }else if(name == STR_TARGETSNORMALIZATION){ attributes = tsReadXML.attributes(); if(attributes.hasAttribute(STR_TYPE) && attributes.hasAttribute(STR_MAXVALUE) && attributes.hasAttribute(STR_MINVALUE) && attributes.hasAttribute(STR_THRESHOLD) && attributes.hasAttribute(STR_AMPLITUDE) && attributes.hasAttribute(STR_ELONGATION)) { tnor->setType(normFromStrToInt(attributes.value(STR_TYPE).toString())); tnor->setMaxValue(attributes.value(STR_MAXVALUE).toDouble()); tnor->setMinValue(attributes.value(STR_MINVALUE).toDouble()); tnor->setThreshold(attributes.value(STR_THRESHOLD).toDouble()); tnor->setAmplitude(attributes.value(STR_AMPLITUDE).toDouble()); tnor->setElongation(attributes.value(STR_ELONGATION).toDouble()); }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Missing attributes (" + STR_TYPE + ", " + STR_MAXVALUE + ", " + STR_MINVALUE + ", " + STR_THRESHOLD + ", " + STR_ELONGATION + ") on tag " + STR_TARGETSNORMALIZATION, tsReadXML.lineNumber() }; } }else if(name == STR_PATTERN){ attributes = tsReadXML.attributes(); if(attributes.hasAttribute(STR_INDEX)) { lastPatternIndex = attributes.value(STR_INDEX).toInt(); }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Missing attributes (" + STR_INDEX + ") on tag " + STR_PATTERN, tsReadXML.lineNumber() }; } }else if(name == STR_INPUTS){ text = tsReadXML.readElementText(QXmlStreamReader::SkipChildElements); textElements = text.split(STR_SEPARATOR, QString::KeepEmptyParts, Qt::CaseInsensitive); sTextElements = textElements.size(); if(sTextElements == iSize){ for(int i = 0; i < sTextElements; i++){ inputs[lastPatternIndex][i] = textElements[i].toDouble(); } }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Incongruence between reported input size with found inputs elements", tsReadXML.lineNumber() }; } }else if(name == STR_TARGETS){ text = tsReadXML.readElementText(QXmlStreamReader::SkipChildElements); textElements = text.split(STR_SEPARATOR, QString::KeepEmptyParts, Qt::CaseInsensitive); sTextElements = textElements.size(); if(sTextElements == tSize){ for(int t = 0; t < sTextElements; t++){ targets[lastPatternIndex][t] = textElements[t].toDouble(); } }else{ file.close(); return { retTSF, false, NotWellFormedError, "NotWellFormedError: Incongruence between reported target size with found target elements", tsReadXML.lineNumber() }; } } } } retTSF->setFileName(file.fileName()); res.file = retTSF; ts->setPatternCount(pSize); ts->setInputs(inputs, iSize); ts->setTargets(targets, tSize); ts->setInputsNormalization(inor); ts->setTargetsNormalization(tnor); ts->setInputsDataRepresentation(idr); ts->setTargetsDataRepresentation(tdr); res.sucess = true; res.errnum = toTSFError(QXmlStreamReader::NoError); res.errormsg = ""; res.line = -1; file.close(); return res; }else{ file.close(); return { retTSF, false, toTSFError(file.error()), file.errorString(), -1 }; } }
/*! * Parses a DynamoDBStreams GetShardIterator response element from \a xml. */ void GetShardIteratorResponsePrivate::parseGetShardIteratorResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("GetShardIteratorResponse")); Q_UNUSED(xml) ///< @todo }
void UVManager::lireFichier(QXmlStreamReader& xml) { // We'll parse the XML until we reach end of it. while(!xml.atEnd() && !xml.hasError()) { // Read next element. QXmlStreamReader::TokenType token = xml.readNext(); // If token is just StartDocument, we'll go to next. if(token == QXmlStreamReader::StartDocument) continue; // If token is StartElement, we'll see if we can read it. if(token == QXmlStreamReader::StartElement) { // If it's named uvs, we'll go to the next. if(xml.name() == "uvs") continue; // If it's named uv, we'll dig the information from there. if(xml.name() == "uv") { QString code; QString titre; unsigned int nbCredits; Categorie cat; bool automne=false; bool printemps=false; QXmlStreamAttributes attributes = xml.attributes(); /* Let's check that uvs has attribute. */ if(attributes.hasAttribute("automne")) { QString val =attributes.value("automne").toString(); automne=(val == "true" ? true : false); } if(attributes.hasAttribute("printemps")) { QString val =attributes.value("printemps").toString(); printemps=(val == "true" ? true : false); } xml.readNext(); //We're going to loop over the things because the order might change. //We'll continue the loop until we hit an EndElement named uv. while(!(xml.tokenType() == QXmlStreamReader::EndElement && xml.name() == "uv")) { if(xml.tokenType() == QXmlStreamReader::StartElement) { // We've found code. if(xml.name() == "code") { xml.readNext(); code=xml.text().toString(); } // We've found titre. if(xml.name() == "titre") { xml.readNext(); titre=xml.text().toString(); } // We've found credits. if(xml.name() == "credits") { xml.readNext(); nbCredits=xml.text().toString().toUInt(); } // We've found categorie if(xml.name() == "categorie") { xml.readNext(); cat=StringToCategorie(xml.text().toString()); } } // ...and next... xml.readNext(); } ajouterUV(code,titre,nbCredits,cat,automne,printemps); } } } }
void CoverFetchArtPayload::prepareDiscogsUrls( QXmlStreamReader &xml ) { while( !xml.atEnd() && !xml.hasError() ) { xml.readNext(); if( !xml.isStartElement() || xml.name() != "release" ) continue; const QString releaseId = xml.attributes().value( "id" ).toString(); while( !xml.atEnd() && !xml.hasError() ) { xml.readNext(); const QStringRef &n = xml.name(); if( xml.isEndElement() && n == "release" ) break; if( !xml.isStartElement() ) continue; CoverFetch::Metadata metadata; metadata[ "source" ] = "Discogs"; if( n == "title" ) metadata[ "title" ] = xml.readElementText(); else if( n == "country" ) metadata[ "country" ] = xml.readElementText(); else if( n == "released" ) metadata[ "released" ] = xml.readElementText(); else if( n == "notes" ) metadata[ "notes" ] = xml.readElementText(); else if( n == "images" ) { while( !xml.atEnd() && !xml.hasError() ) { xml.readNext(); if( xml.isEndElement() && xml.name() == "images" ) break; if( !xml.isStartElement() ) continue; if( xml.name() == "image" ) { const QXmlStreamAttributes &attr = xml.attributes(); const KUrl thburl( attr.value( "uri150" ).toString() ); const KUrl uri( attr.value( "uri" ).toString() ); const KUrl url = (m_size == CoverFetch::ThumbSize) ? thburl : uri; if( !url.isValid() ) continue; metadata[ "releaseid" ] = releaseId; metadata[ "releaseurl" ] = "http://discogs.com/release/" + releaseId; metadata[ "normalarturl" ] = uri.url(); metadata[ "thumbarturl" ] = thburl.url(); metadata[ "width" ] = attr.value( "width" ).toString(); metadata[ "height" ] = attr.value( "height" ).toString(); metadata[ "type" ] = attr.value( "type" ).toString(); m_urls.insert( url, metadata ); } else xml.skipCurrentElement(); } } else xml.skipCurrentElement(); } } }
/*! * Parses a CloudWatch ListMetrics response element from \a xml. */ void ListMetricsResponsePrivate::parseListMetricsResponse(QXmlStreamReader &xml) { Q_ASSERT(xml.name() == QLatin1String("ListMetricsResponse")); Q_UNUSED(xml) ///< @todo }
XlsxMarker DrawingAnchor::loadXmlMarker(QXmlStreamReader &reader, const QString &node) { Q_ASSERT(reader.name() == node); int col = 0; int colOffset = 0; int row = 0; int rowOffset = 0; while (!reader.atEnd()) { reader.readNextStartElement(); if (reader.tokenType() == QXmlStreamReader::StartElement) { if (reader.name() == QLatin1String("col")) { col = reader.readElementText().toInt(); } else if (reader.name() == QLatin1String("colOff")) { colOffset = reader.readElementText().toInt(); } else if (reader.name() == QLatin1String("row")) { row = reader.readElementText().toInt(); } else if (reader.name() == QLatin1String("rowOff")) { rowOffset = reader.readElementText().toInt(); } } else if (reader.tokenType() == QXmlStreamReader::EndElement && reader.name() == node) { break; } } return XlsxMarker(row, col, rowOffset, colOffset); }