![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
void* |
![]() ![]()
Сообщение
#1
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
каким образом можно поменять текст внутри тега, например есть тег:
<sometag>sometext</sometag> и я хочу поменять строку sometext на другую (допустим sometext2). Как это возможно сделать? с аттрибутами то все просто, есть QDomElement::setAttribute(), есть также QDomElement::attribute(), а вот для текста внутри тега есть только QDomElement::text(), но он только возвращает значение. Как быть? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
QDomElement::text(), этим добром лучше не пользуйся, эта функция рекурсивно по ветке бегает, используй datavoid QDomCharacterData::setData ( const QString & v ) |
|
|
void* |
![]()
Сообщение
#3
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
пасиб, попробую
|
|
|
void* |
![]()
Сообщение
#4
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
блин или я туплю или все равно ничего не записывает. Вот полностью функция:
полный код функции
Сообщение отредактировал void* - 17.1.2009, 15:42 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
приведу клочёк своего кода:
Раскрывающийся текст
тут смотри:
я до этой штуки долго доходил, и логики вроде минимум, но работает железно Если надо могу дать весь исходник, он гуляет по XML-дереву и выводит в консоль автопортрет узла в котором в данный момент находится: вывод в консоль/файл
|
|
|
void* |
![]()
Сообщение
#6
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
т.е. насколько я понял, в моем случае нужно делать примерно так:
правильно? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
void* |
![]()
Сообщение
#8
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, так тоже не работает.
С чтением то у меня тоже проблем нет, а вот с записью тут несколько сложнее... походу проблема решена. Есть два способа решения моей проблемы в зависимости от ситуации: 1) когда тег уже имеет какой-либо текст:
т.е. firstChild() в этом случае вернет QDomNode, который по сути именно текст внутри тега 2) когда тег пустой, т.е. что-то вроде <sometag/>, то firstChild() возвратит NULL, надо тогда действовать таким образом:
вобщем вот так вот как-то некрасиво получается... |
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
offtop:
Вообще мне этот DOM не понравился, на больших файлах тормозит дико. Сильно запутаный - работать сложно. А альтернативы, в режиме чтение-запись, в Qt'ях похоже нету. |
|
|
void* |
![]()
Сообщение
#10
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
SAX?
![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 30.6.2025, 6:50 |