Запись в XML-файла

Всем доброго дня!

Относительно недавно начал работать в Qt С++. В данный момент работаю над выводом данных из QList в .xml файл. Для сохранения прописал в mainwindow.h специальную функцию, где прописано следующее:

void saveToFile(QList<clients> list)
{
    QFile file("myDataFile.xml");
    file.open(QIODevice::WriteOnly);
    if (!file.open(QFile::ReadOnly | QFile::Text)) {
        QMessageBox::warning(this,
                             "Ошибка файла",
                             "Не удалось открыть файл",
                             QMessageBox::Ok);
    } else {
        QXmlStreamWriter xmlWriter(&file);
        xmlWriter.setAutoFormatting(true);
        xmlWriter.writeStartElement("Clients");
        int i = 0;
        while (i < list.size()) {
            xmlWriter.writeStartElement("name");
            xmlWriter.writeAttribute("QString", list.at(i).name);
            xmlWriter.writeEndElement();

            xmlWriter.writeStartElement("taxID");
            xmlWriter.writeAttribute("QString", list.at(i).taxID);
            xmlWriter.writeEndElement();

            xmlWriter.writeStartElement("phone");
            xmlWriter.writeAttribute("QString", list.at(i).phone);
            xmlWriter.writeEndElement();

            xmlWriter.writeStartElement("address");
            xmlWriter.writeAttribute("QString", list.at(i).address);
            xmlWriter.writeEndElement();
        }
        xmlWriter.writeEndElement();
        xmlWriter.writeEndDocument();
        file.close();
    }
}

При этом при этом при попытке вызвать эту функцию выбрасывает ошибку: Не удалось найти файл, а в Application output читаем следующее:

QFile::open: File (myDataFile.xml) already open

Скажите, пожалуйста, где могла быть допущена ошибка? Файл создал вручную, загрузил в папку проекта, он называется myDataFile.xml, но пуст.


Ответы (1 шт):

Автор решения: Alexander Chernin
QFile file(filename);
if( !file.open(QIODevice::WriteOnly) ) {
    QMessageBox::warning(this,
                         "Ошибка файла",
                         "Не удалось открыть/создать файл на запись",
                         QMessageBox::Ok);
    return;
}

QXmlStreamWriter xmlWriter(&file);
... 

file.close();
→ Ссылка