Spec-Zone.ru › Qt 5.6

Класс QXmlResultItems

Класс QXmlResultItems итерирует результаты вычисления XQuery в QXmlQuery. Подробнее...

Заголовок: #include <QXmlResultItems>
qmake: QT += xmlpatterns
С момента: Qt 4.4
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Публичные функции

QXmlResultItems()
virtual ~QXmlResultItems()
QXmlItem current() const
bool hasError() const
QXmlItem next()

Подробное описание

Класс QXmlResultItems итерирует результаты вычисления XQuery в QXmlQuery.

QXmlResultItems представляет вычисление связанного запроса как последовательности QXmlItems. Последовательность просматривается многократным вызовом next(), который фактически генерирует последовательность с помощью ленивой оценки запроса.

QXmlQuery query;
query.setQuery("<e/>, 1, 'two'");
QXmlResultItems result;

if (query.isValid()) {
    query.evaluateTo(&result);
    QXmlItem item(result.next());
    while (!item.isNull()) {
        // use item
        item = result.next();
    }
    if (result.hasError()) {
        /* Runtime error! */
    }
}

Эффект, позволяющий next() генерировать последовательность с помощью ленивой оценки, заключается в том, что ошибка запроса может возникнуть при любом вызове next(). Если произошла ошибка, как next(), так и current() вернут нулевой QXmlItem, и hasError() вернет true.

QXmlResultItems можно рассматривать как "итератор", который один раз просматривает последовательность результатов запроса в прямом направлении. Каждый вызов next() перемещает итератор к следующему QXmlItem в последовательности и возвращает его, а current() всегда возвращает QXmlItem, который next() вернул в последний раз.

Примечание: При использовании перегрузки QXmlResultItems метода QXmlQuery::evaluateTo() для выполнения запроса рекомендуется создавать новый экземпляр этого класса для каждого нового набора результатов, а не повторно использовать старый экземпляр.

См. также QXmlItem::isNode(), QXmlItem::isAtomicValue() и QXmlNodeModelIndex.

Документация функций-членов

QXmlResultItems::QXmlResultItems()

Конструирует экземпляр QXmlResultItems.

[virtual] QXmlResultItems::~QXmlResultItems()

Уничтожает этот экземпляр QXmlResultItems.

QXmlItem QXmlResultItems::current() const

Возвращает текущий элемент. Текущий элемент — это последний элемент, который был создан и возвращен функцией next().

Возвращает нулевой QXmlItem, если нет связанного QXmlQuery.

bool QXmlResultItems::hasError() const

Если во время вычисления запроса произошла ошибка, возвращается true.

Возвращает false, если вычисление запроса завершено.

QXmlItem QXmlResultItems::next()

Возвращает следующий результат в последовательности, созданной ленивой оценкой связанного запроса. Когда возвращаемый QXmlItem равен null, либо вычисление завершилось нормально без создания другого результата, либо произошла ошибка. Используйте hasError(), чтобы определить, был ли нулевой элемент вызван нормальным завершением или ошибкой.

Возвращает нулевой QXmlItem, если нет связанного QXmlQuery.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qxmlresultitems.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API