#include#include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile file("books.xml"); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open file!"; return -1; } QXmlStreamReader xmlReader(&file); while(!xmlReader.atEnd() && !xmlReader.hasError()) { QXmlStreamReader::TokenType token = xmlReader.readNext(); if(token == QXmlStreamReader::StartDocument) continue; if(token == QXmlStreamReader::StartElement) { if(xmlReader.name() == "book") { QString title = xmlReader.attributes().value("title").toString(); qDebug() << "Title: " << title; } } } file.close(); return a.exec(); }
#includeBoth examples demonstrate how to use QXmlStreamReader to parse XML data and extract information from it. The QXmlStreamReader class is part of the Qt Core library.#include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile file("invalid.xml"); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open file!"; return -1; } QXmlStreamReader xmlReader(&file); while(!xmlReader.atEnd() && !xmlReader.hasError()) { QXmlStreamReader::TokenType token = xmlReader.readNext(); if(token == QXmlStreamReader::Invalid) { qDebug() << "An error occurred while parsing the XML document:"; qDebug() << xmlReader.errorString(); } } file.close(); return a.exec(); }