Класс 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/archives/qt-5.11/qxmlresultitems.html