zloyGamer
14.11.2009, 20:24
как поправить один элемент если он мне известен, тоесть я уже нашел нужный элемент QDomNode и получил text() - этого элемента,
и нужно сохранить xml'ку поменяв тока текст этого элемента, для атрибутов в таких случаях есть setAttribute,
для моего случая логично былоб подумать про setNodeValue - но он задает вообще непонятно что.. но не text
как это можно сделать?
Litkevich Yuriy
14.11.2009, 20:43
Цитата(zloyGamer @ 14.11.2009, 23:24)
и получил text() - этого элемента,
если мне не изменяет память, это рекурсивная функция, т.е. она возвращает текст и вложенных узлов, поэтому у неё нет обратного аналога (setText). Смотри, что-нибудь типа Value или Data
zloyGamer
15.11.2009, 3:02
спасибо, нашел, на мой взгляд оказалось немного неожиданно и нелогично - для того чтоб задать текст элемента надо выполнить setNodeValue для его дочернего элемента!, оп сюрприз, может под вечер чего и недогоняю.., но вроде работает тока щас с русскими символами при сохранении пробелема,
например слово "привет" преобразуется в "пїЅпїЅпїЅпїЅпїЅпїЅ", похоже что то в какойто момент конвертится в юникод, затем ещё во чтото и содержимое безвозвратно теряется..,
как поправить кодировки для этих ситуаций, чтоб лишний раз не преобразовывалось?
Litkevich Yuriy
15.11.2009, 7:19
какая кодировка должна быть в целевом файле (по идее она указывается в самом файле)
zloyGamer
15.11.2009, 10:41
да так и есть, в самом файле прописано: <?xml version='1.0' encoding='UTF-8'?>
и читаются русские символы нормально, а записывается уже в неверной кодировке..,
прост я уже потом заметил что у меня при записи в файл написано file.write( domDoc.toByteArray() );
а если конвертнуть строку функцией toAscii или toLocal8Bit то все ок!
спасибо Litkevich Yuriy
тема закрыта
ps: чет невижу где можно пометить "решено"
Litkevich Yuriy
15.11.2009, 12:25
Цитата(zloyGamer @ 15.11.2009, 13:41)
ps: чет невижу где можно пометить "решено"
после 20 сообщений, сможешь редактировать свои сообщения (в том числе первое с заголовком)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.