Spec-Zone.ru › Qt 5.15

Класс QXmlResultItems

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

Заголовок: #include <QXmlResultItems>
qmake: QT += xmlpatterns
С тех пор: Qt 4.4

Этот класс был представлен в Qt 4.4.

  • Список всех членов, включая унаследованные

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

Открытые функции

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

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

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 является нулевым, либо вычисление завершилось нормально без создания другого результата, либо произошла ошибка. Вызовите hasError(), чтобы определить, был ли нулевой элемент вызван нормальным завершением или ошибкой.

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

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

Spec-Zone.ru

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