Здравствуйте!
Наткнулся на проблему: значения узлов XML не сохраняются в файл.
Итак, исходный XML
<?xml version='1.0' encoding='UTF-8'?>
<CONFIG>
</CONFIG>
Ожидается после выполнения программы:
<?xml version='1.0' encoding='UTF-8'?>
<CONFIG>
<FIRST>AAA</FIRST>
</CONFIG>
Программа:
#include <QCoreApplication>
#include <QtXml/QtXml>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QFile File;
QDomDocument Doc;
File.setFileName("test.xml");
if (File.open(QFile::ReadOnly))
{
int Line, Column;
QString errorMessage;
if (Doc.setContent(&File, &errorMessage, &Line, &Column))
{
File.close();
QDomElement MAIN = Doc.documentElement();
QDomElement FIRST = Doc.createElement("FIRST");
FIRST.setNodeValue("AAA");
QString message = "value is " + FIRST.nodeValue().toAscii();
qDebug(message.toAscii());// ту всё хорошо, пишется "value is AAA"
MAIN.appendChild(FIRST);
qDebug(Doc.toString(4).toAscii());
File.setFileName("test.xml");
if (File.open(QFile::WriteOnly))
{
QTextStream out(&File);
Doc.save(out, 2, QDomNode::EncodingFromDocument);
}
}
else
{
QString message = "error: " + errorMessage + " line %d" + " column %d";
qDebug(message.toAscii(), Line, Column);
}
}
return 0;
}
Результат выполнения:
<?xml version='1.0' encoding='UTF-8'?>
<CONFIG>
<FIRST/>
</CONFIG>
Использую qt 4:
$ yum info qt4
Installed Packages
Name : qt4
Arch : x86_64
Version: 4.3.3
Release: 1.fc8
Size : 6.0 M
Repo : installed
Summary: Qt toolkit
Description:
Qt is a software toolkit for developing applications.
This package contains base tools, like string, xml, and network
handling.
Name : qt4
Arch : i386
Version: 4.3.3
Release: 1.fc8
Size : 5.9 M
Repo : installed
Summary: Qt toolkit
Description:
Qt is a software toolkit for developing applications.
This package contains base tools, like string, xml, and network
handling.