Получить QDomNode из xml по имени |
Здравствуйте, гость ( Вход | Регистрация )
Получить QDomNode из xml по имени |
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
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 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
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 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
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 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
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 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
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
в отладчике гляди, где неправильно дело идёт
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 1:05 |