Russian Qt Forum
Сентябрь 21, 2024, 11:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: XML - проблема сохранения значения узла  (Прочитано 3911 раз)
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.
Записан
ритт
Гость
« Ответ #1 : Март 22, 2008, 20:38 »

нужно создавать текстовую ноду, устанавливать ей значение "ААА" и добавлять её к ноде "ФИРСТ"
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.157 секунд. Запросов: 21.