crossplatform.ru

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

RazrFalcon
  опции профиля:
сообщение 3.10.2011, 11:53
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


...
<example name="example text"/>
...
В XML куча вложений и элементов. Как найти элемент example, кроме как через рекурсивную функцию?
То есть найти его, где бы в xml он не находился.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 3.10.2011, 13:38
Сообщение #2


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

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

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




Репутация:   34  


made in the Notepad ))

попробуй

//рекурсивный поиск
bool GuiInfo::findNode(const QString &name, const QDomNode &node, const QDomNode& found)
{
    if(node.nodeName()==name)
    {
      found = node;
      return true;
    }

  if(node.hasChildNodes())
  {
    QDomNodeList tempNodeList = node.childNodes();
    for(int i = 0; i<tempNodeList.count(); i++)
    {
      if(findNode(name,tempNodeList.item(i),found))return true;
    }
  }

  return false;
}

//ищем
GuiInfo::F1()
{
  node=...;
  QDomNode found;
  if(findNode("aaaa", node, found))
  {
    //нашли - found
  }
}


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

Сообщений в этой теме
- RazrFalcon   Получить QDomNode из xml по имени   3.10.2011, 11:53
- - Алексей1153   можно попробовать открыть файл как текст и найти с...   3.10.2011, 11:55
- - RazrFalcon   Нее... нужен именно QDomNode, так как потом мне ну...   3.10.2011, 12:01
- - Алексей1153   если структура XML не меняется, либо меняется по т...   3.10.2011, 12:13
- - RazrFalcon   Сделал так. Работает. ... findNode(name,mainNo...   3.10.2011, 12:19
- - Алексей1153   как-нибудь так const QDomNode node GuiInfo:...   3.10.2011, 12:37
- - RazrFalcon   const QDomNode node GuiInfo::findNodeА мож...   3.10.2011, 12:44
- - Алексей1153   "node" - это очепятка вкралась. В блокно...   3.10.2011, 12:49
- - RazrFalcon   Ааа! Все понял. Про "return QDomNode();...   3.10.2011, 13:11
- - Алексей1153   в отладчике гляди, где неправильно дело идёт   3.10.2011, 13:12
- - RazrFalcon   Оно создает 2-а GuiInfo::findNode, и ретурн убивае...   3.10.2011, 13:22
- - Алексей1153   made in the Notepad )) попробуй //рекурсивный по...   3.10.2011, 13:38
- - RazrFalcon   Рабочий вариант: //ищем GuiInfo::F1(...   3.10.2011, 13:55
- - Алексей1153   RazrFalcon, в твоём варианте, в отличие от моего, ...   3.10.2011, 14:05
- - RazrFalcon   У меня все нашло. И с детьми и без.   3.10.2011, 14:09
- - Алексей1153   ну, нашлось, так нашлось.   3.10.2011, 14:11
- - DOGG   Может подойдет метод QDomNodeList QDomDocument::el...   3.10.2011, 17:03
- - RazrFalcon   Капец! Работает. Сократил код в 100500 раз. С...   3.10.2011, 17:30
- - DOGG   Пожалуйста!   3.10.2011, 17:46


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 16.4.2025, 0:09