Здравствуйте, гость ( Вход | Регистрация )
|
RazrFalcon |
3.10.2011, 11:53
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212
|
В XML куча вложений и элементов. Как найти элемент example, кроме как через рекурсивную функцию?То есть найти его, где бы в xml он не находился. |
|
|
|
![]() |
|
Алексей1153 |
3.10.2011, 11:55
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
можно попробовать открыть файл как текст и найти строку "<example name="
|
|
|
|
|
RazrFalcon |
3.10.2011, 12:01
Сообщение
#3
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212
|
Нее... нужен именно QDomNode, так как потом мне нужно будет получить список его дочерних элементов.
|
|
|
|
|
Алексей1153 |
3.10.2011, 12:13
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
если структура XML не меняется, либо меняется по твоему пожеланию, то ты всегда можешь пройти путь к нужному элементу. Ели же задача стоит в том, чтобы этот элемент искать в неизвестном месте, то кроме как обойти все ветки и найти его - наверное, никак
Цитата QDomNodeList childNodes () const вот этот метод тоже пригодится при поиске Цитата QDomNode QDomNode::namedItem ( const QString & name ) const
|
|
|
|
|
RazrFalcon |
3.10.2011, 12:19
Сообщение
#5
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212
|
Сделал так. Работает.
Разве что не пойму, как остановить эту рекурсивную функцию. |
|
|
|
|
Алексей1153 |
3.10.2011, 12:37
Сообщение
#6
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
как-нибудь так
но за правильность не уверен, так как не пойму, используются тут ссылки на внешние переменные или локальные переменные. Вернул по значению |
|
|
|
|
RazrFalcon |
3.10.2011, 12:44
Сообщение
#7
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212
|
А можно этот момент объяснить?Это я бы еще понял, но что там делает node?не пойму что возвращаем?
|
|
|
|
|
Алексей1153 |
3.10.2011, 12:49
Сообщение
#8
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
"node" - это очепятка вкралась. В блокноте правил
"return QDomNode();" - возвращаем пустой объект - ведь что-то всё равно нужно вернуть |
|
|
|
|
RazrFalcon |
3.10.2011, 13:11
Сообщение
#9
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212
|
Ааа! Все понял. Про "return QDomNode();" не знал.
Возвращает пустые... |
|
|
|
|
Алексей1153 |
3.10.2011, 13:12
Сообщение
#10
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
в отладчике гляди, где неправильно дело идёт
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 15.12.2025, 12:13 |