Класс 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() вернут null 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().
Возвращает null QXmlItem, если нет связанного QXmlQuery.
bool QXmlResultItems::hasError() const
Если во время вычисления запроса произошла ошибка, возвращается true.
Возвращает false, если вычисление запроса завершено успешно.
QXmlItem QXmlResultItems::next()
Возвращает следующий результат в последовательности, генерируемой ленивым вычислением связанного запроса. Когда возвращаемый QXmlItem равен null, либо вычисление завершилось нормально без создания другого результата, либо произошла ошибка. Вызовите hasError(), чтобы определить, был ли null-элемент вызван нормальным завершением или ошибкой.
Возвращает null QXmlItem, если нет связанного QXmlQuery.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qxmlresultitems.html