Spec-Zone.ru › Qt 5.12

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

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

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

Spec-Zone.ru

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