crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Вытащить элемент по имени тэга
Rocky
  опции профиля:
сообщение 2.9.2011, 8:05
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

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




Репутация:   7  


Всем привет!

Хочу хранить настройки приложения в xml. В связи с этим он будет иметь примерно такой вид:
<global_module1>
   <cityName>param<\cityName>
   <countryName>param<\countryName>
   <regionName>param<\regionName>
<\global_module1>

<global_module2>
   <setting1>param<\setting1>
...
<\global_module2>


Т.е. в xml будет не единая структура с одинаковыми блоками, а с разными. Вопрос, можно ли обойтись как-то без циклов перебора всех дочерних элементов? Т.е. У какого-то элемента взять и вытащить дочерний элемент по имени? Предполагаю что нет конечно... но вдруг? Уж очень нехояется в цикле ставить кучу if-ов на проверку имени тэга...

Спасибо!

--------
UPD
Сам отвечаю: можно!!! Функа QDomElement::firstChildElement принимает в качестве аргумента тэг ))

Сообщение отредактировал Rocky - 2.9.2011, 8:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 2.9.2011, 19:32
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Rocky,

вот так компактнее будет (и разбирать проще)

<global_module1 cityName="dfgdfg" countryName="dfgdfh" regionName="asdfsdfg">

</global_module1>



а во вложенных тегах удобно размещать массивы:

<global_module1 cityName="dfgdfg" countryName="dfgdfh" regionName="asdfsdfg">
  <array1 count="3">
    <elem id="1"/>
    <elem id="3"/>
    <elem id="7"/>
  </array1>
  <array2 count="2">
    <elem id="8"/>
    <elem id="9"/>
    <elem id="11"/>
  </array2>
</global_module1>


атрибут count опционален (более того - произволен), но полезен для примерного резервирования памяти при загрузке массива в озу

кстати, там слеш должен быть, а не бэкслеш, как у тебя.

Сообщение отредактировал Алексей1153 - 2.9.2011, 19:31
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.11.2024, 2:00