//запрашиваем имя файла у пользователя
QString fileName = QFileDialog::getOpenFileName(this, tr("Open XML file"),
QDir::currentPath(),
tr("XML file (*.xml)"));
//если он не выбрал файл, то возвращаем false
if (fileName.isEmpty())
return false;
//пытаемся открыть файл для чтения
//если не получится, то выводим сообщение об ошибке и возвращаем false
QFile file(fileName);
if (!file.open(QFile::ReadOnly | QFile::Text)) {
QMessageBox::warning(this, tr("Opening file"),
tr("Cannot read file %1:\n%2.")
.arg(fileName)
.arg(file.errorString()));
return false;
}
QString errorStr;
int errorLine;
int errorColumn;
QDomDocument document;
//парсим файл
//Если не удается распарисить файл отчетов, возвращаем false
if (!document.setContent(file, true, &errorStr, &errorLine,
&errorColumn)) {
QMessageBox::information(window(), tr("Parser error"),
tr("Parse error at line %1, column %2:\n%3")
.arg(errorLine)
.arg(errorColumn)
.arg(errorStr));
return false;
}
return true;