crossplatform.ru

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

> Xml - обращение к дочернему элементу
FladeX
  опции профиля:
сообщение 27.3.2009, 12:18
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 67
Регистрация: 20.2.2009
Пользователь №: 564

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




Репутация:   0  


Структура xml:
<help>
    <page id="page01">
        <title>title of page01</title>
        <message>text</message>
    </page>
    ...
    <page id="page99">
        <title>title of page99</title>
        <message>text</message>
    </page>
</help>

Нужно по id найти в нем <page>, а затем получить оттуда содержимое <message>. Пытался делать например так:
    QDomElement docElem;
    docElem = doc.elementById("page01");
        QDomNodeList lstNodes(docElem.childNodes()));
        for (int n=0; n<lstNodes.count(), n++)
        {
            childElem = lstNodes.at(n)::toElement();
            if (childElem.tagName == "message")
            {
                message = childElem.text();
            }
        }

Но не получается... Как же правильно тогда?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 28.3.2009, 3:34
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Kagami @ 28.3.2009, 2:33) *
.text()
по моему опыту, лучше избегать применения этой функции, т.к. она рекурсивная, т.е. схватит все вложенные тэги, часто это неподходящий вариант. Лучше использовать data() или value().

П.С. еслиб не простуда, привел бы пример, но нагретая голова плохо соображает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 28.3.2009, 9:16
Сообщение #3


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

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

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




Репутация:   9  


Цитата(Litkevich Yuriy @ 28.3.2009, 3:34) *
по моему опыту, лучше избегать применения этой функции, т.к. она рекурсивная, т.е. схватит все вложенные тэги, часто это неподходящий вариант. Лучше использовать data() или value().

Хм.. Что-то я сходу не нашел таких функций у QDomElement и у QDomDocument ни у их родителя QDomNode..

P.S. Выздоравливай скорее
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- FladeX   Xml - обращение к дочернему элементу   27.3.2009, 12:18
- - igor_bogomolov   Начну с того, что в приведенном Вами коде очень мн...   27.3.2009, 14:22
- - FladeX   Выдает ошибку crosses initialization of ‘QDomNodeL...   27.3.2009, 14:57
- - igor_bogomolov   ??? Я так понимаю, что childElem у Вас где-то уже ...   27.3.2009, 15:16
- - FladeX   childElem ранее объявлен не был. Замена строки не ...   27.3.2009, 15:23
- - igor_bogomolov   копируем куда-нибудь проект QTDIR/examples/xml/dom...   27.3.2009, 15:47
- - Kagami   Есть решение немного по-изящнее: Раскрывающийся те...   27.3.2009, 18:15
- - igor_bogomolov   Цитата(Kagami @ 27.3.2009, 18:15) Есть ре...   27.3.2009, 23:27
|- - Kagami   Цитата(igor_bogomolov @ 27.3.2009, 23:27)...   27.3.2009, 23:33
- - Litkevich Yuriy   Цитата(Kagami @ 28.3.2009, 2:33) .text()п...   28.3.2009, 3:34
|- - Kagami   Цитата(Litkevich Yuriy @ 28.3.2009, 3:34)...   28.3.2009, 9:16
- - FladeX   Kagami, спасибо большое! Мне как раз надо чтоб...   7.4.2009, 11:15
- - igor_bogomolov   Видимо у вас в коде есть что то вроде такого swi...   7.4.2009, 11:28
- - Litkevich Yuriy   Цитата(Kagami @ 28.3.2009, 13:16) Хм.. Чт...   7.4.2009, 11:45
- - FladeX   Итак, currentId() содержит айдишник текущей страни...   7.4.2009, 13:03
- - Litkevich Yuriy   FladeX, У меня есть тестовая программа по которой ...   7.4.2009, 13:36
- - Kagami   А какая область видимости у переменной message?   7.4.2009, 14:12
- - FladeX   Только внутри функции. Используется для QMessageBo...   7.4.2009, 14:30
- - Kagami   В приведенном выше кусочке вроде ошибок не видно. ...   7.4.2009, 17:19
- - FladeX   Вот функция целиком: cppvoid ExpertSystem:...   8.4.2009, 11:59
- - Kagami   Посидел десять минут, но раскусил этот орешек: Рас...   8.4.2009, 21:59
- - FladeX   Спасибо за развернутый ответ! Теперь понятнее ...   9.4.2009, 11:46
- - Kagami   Из-за области видимости переменной. Если ее создав...   9.4.2009, 13:25
- - FladeX   Не совсем понял, какую переменную мы создаем в усл...   10.4.2009, 15:00
- - Kagami   А какие значение возвращает currentId() ?   10.4.2009, 18:25
- - FladeX   Возвращает int. Но я уже решил проблему: Вместо э...   13.4.2009, 14:15
- - Litkevich Yuriy   Цитата(FladeX @ 13.4.2009, 18:15) Отдельн...   13.4.2009, 15:14
- - Kagami   Если бы я заметил что в середине обсуждения у тебя...   13.4.2009, 18:59


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


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




RSS Текстовая версия Сейчас: 19.9.2024, 15:42