Класс 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