crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> [РЕШЕНО] QDomElement как поменять содержимое/текст элемента, обратная функция к text();
zloyGamer
  опции профиля:
сообщение 14.11.2009, 20:24
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 22
Регистрация: 18.7.2009
Пользователь №: 917

Спасибо сказали: 0 раз(а)




Репутация:   0  


как поправить один элемент если он мне известен, тоесть я уже нашел нужный элемент QDomNode и получил text() - этого элемента,
и нужно сохранить xml'ку поменяв тока текст этого элемента, для атрибутов в таких случаях есть setAttribute,
для моего случая логично былоб подумать про setNodeValue - но он задает вообще непонятно что.. но не text

как это можно сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.11.2009, 20:43
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(zloyGamer @ 14.11.2009, 23:24) *
и получил text() - этого элемента,
если мне не изменяет память, это рекурсивная функция, т.е. она возвращает текст и вложенных узлов, поэтому у неё нет обратного аналога (setText). Смотри, что-нибудь типа Value или Data
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zloyGamer
  опции профиля:
сообщение 15.11.2009, 3:02
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 22
Регистрация: 18.7.2009
Пользователь №: 917

Спасибо сказали: 0 раз(а)




Репутация:   0  


спасибо, нашел, на мой взгляд оказалось немного неожиданно и нелогично - для того чтоб задать текст элемента надо выполнить setNodeValue для его дочернего элемента!, оп сюрприз, может под вечер чего и недогоняю.., но вроде работает тока щас с русскими символами при сохранении пробелема,
например слово "привет" преобразуется в "пїЅпїЅпїЅпїЅпїЅпїЅ", похоже что то в какойто момент конвертится в юникод, затем ещё во чтото и содержимое безвозвратно теряется..,
как поправить кодировки для этих ситуаций, чтоб лишний раз не преобразовывалось?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.11.2009, 7:19
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


какая кодировка должна быть в целевом файле (по идее она указывается в самом файле)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zloyGamer
  опции профиля:
сообщение 15.11.2009, 10:41
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 22
Регистрация: 18.7.2009
Пользователь №: 917

Спасибо сказали: 0 раз(а)




Репутация:   0  


да так и есть, в самом файле прописано: <?xml version='1.0' encoding='UTF-8'?>
и читаются русские символы нормально, а записывается уже в неверной кодировке..,
прост я уже потом заметил что у меня при записи в файл написано file.write( domDoc.toByteArray() );
а если конвертнуть строку функцией toAscii или toLocal8Bit то все ок!
спасибо Litkevich Yuriy
тема закрыта
ps: чет невижу где можно пометить "решено"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.11.2009, 12:25
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(zloyGamer @ 15.11.2009, 13:41) *
ps: чет невижу где можно пометить "решено"
после 20 сообщений, сможешь редактировать свои сообщения (в том числе первое с заголовком)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 17:42