6
Desidero leggere un file XML utilizzando QXmlStreamReader
, ma in realtà non so dove si trova il problema. La mia funzione legge il contenuto del primo tag, ma poi si ferma.Lettura di un file XML utilizzando QXmlStreamReader
La forma del file XML:
<?xml version="1.0" encoding="utf-8"?>
<student>
<firstName>mina</firstName>
<lastName>jina</lastName>
<grade>13</grade>
</student>
<student>
<firstName>Cina</firstName>
<lastName>fina</lastName>
<grade>13</grade>
</student>
La funzione:
void MainWindow::open() {
QFile file(QFileDialog::getOpenFileName(this,"Open"));
if(file.open(QIODevice::ReadOnly)) {
QXmlStreamReader xmlReader;
xmlReader.setDevice(&file);
QList<Student> students;
xmlReader.readNext();
//Reading from the file
while (!xmlReader.isEndDocument())
{
if (xmlReader.isStartElement())
{
QString name = xmlReader.name().toString();
if (name == "firstName" || name == "lastName" ||
name == "grade")
{
QMessageBox::information(this,name,xmlReader.readElementText());
}
}else if (xmlReader.isEndElement())
{
xmlReader.readNext();
}
}
if (xmlReader.hasError())
{
std::cout << "XML error: " << xmlReader.errorString().data() << std::endl;
}
}
}