Вот когда-то писал для себя экспорт модели в xml. Думаю, пригодится.
C++ (Qt)
void DBFRedactorMainWindow::exportToXml(const QString& fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly)) {
QMessageBox::critical(this, "", tr("Error save to file.\n%1").arg(file.errorString()));
return;
}
QXmlStreamWriter stream(&file);
stream.setAutoFormatting(true);
stream.writeStartDocument();
stream.writeStartElement("ROWDATA");
for (int i = 0, rowCount = view->model()->rowCount(); i < rowCount; i++) {
stream.writeStartElement("ROW");
for (int j = 0, columnCount = view->model()->columnCount(); j < columnCount; j++) {
const QVariant& value = view->model()->index(i, j).data(Qt::DisplayRole);
stream.writeTextElement(view->model()->headerData(j, Qt::Horizontal, Qt::EditRole).toString(),
value.toString());
}
stream.writeEndElement();
}
stream.writeEndElement();
stream.writeEndDocument();
file.close();
QMessageBox::information(this, "", tr("Export finished"));
}