Russian Qt Forum

Qt => XML => Тема начата: 31512 от Март 22, 2008, 17:22



Название: XML - проблема сохранения значения узла
Отправлено: 31512 от Март 22, 2008, 17:22
Здравствуйте!
Наткнулся на проблему: значения узлов 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.


Название: Re: XML - проблема сохранения значения узла
Отправлено: ритт от Март 22, 2008, 20:38
нужно создавать текстовую ноду, устанавливать ей значение "ААА" и добавлять её к ноде "ФИРСТ"