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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сохранить QDomNode  (Прочитано 7973 раз)
reiner
Гость
« : Март 31, 2012, 20:58 »

Здравствуйте!
В своём проекте столкнулся со следующей проблемой:
Есть много объектов с данными. Требуется, чтоб в каждом была функция, генерирующая его xml представление (QDomNode, или QDomElement, к примеру, со вложенными узлами). Есть объект, который эти объекты собирает, формирует из них QDomDocument и сохраняет в файл.
Пытался сделать как: в каждом из объектов с даными генерировал QDomNode*, потом пытался через  appendChild их прицепить к документу, и записать, но не пишет ничего, выводит ошибку Calling appendChild() on a null node does nothing.
Подскажите пожалуйста, как решить такую проблему.
Записан
mutineer
Гость
« Ответ #1 : Март 31, 2012, 21:40 »

Видимо какой-то из нодов (исходный или который добавляешь) пустой
Записан
_OLEGator_
Гость
« Ответ #2 : Апрель 01, 2012, 11:26 »

Как генерируешь QDomNode?
Записан
reiner
Гость
« Ответ #3 : Апрель 01, 2012, 14:18 »

QDomNode * node = new QDomNode ();
node.setNodeValue("value");

Записан
_OLEGator_
Гость
« Ответ #4 : Апрель 01, 2012, 16:59 »

Так не получится. В Qt странно несколько сделано создание узлов. Создавать можно только при помощи QDomDocument:
Код
C++ (Qt)
QDomElement QDomDocument::createElement ( const QString & tagName )
Записан
reiner
Гость
« Ответ #5 : Апрель 01, 2012, 20:13 »

Собственно, и спрашивать сюда пошёл чтобы выяснить, нет ли какого другого пути.
Кстати, QDomNode можно присоединять потом к этому элементу, или только QDomElement или QDomText?
И ещё, никто не писал троллям относительно этой проблемы? Не планируют ли они изменить что-то в механизме формирования дерева?
Записан
_OLEGator_
Гость
« Ответ #6 : Апрель 02, 2012, 08:57 »

Данная функция просто создает новый узел, не добавляя его в QDomDocument. Почему это не статическая функция и почему нельзя создать корректный узел без использования QDomDocument (возможно и есть способ, но я о нем не знаю) я не понимаю.
Все остальное конечно доступно, в том числе добавление узла к элементу и добавление элементов в него.
Сомневаюсь, что они это планируют менять, ибо в справке числится так:
Код
C++ (Qt)
QDomElement::QDomElement ()
Constructs an empty element. Use the QDomDocument::createElement() function to construct elements with content.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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