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