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