Spec-Zone.ru › Qt 5.14

Класс QXmlContentHandler

Класс QXmlContentHandler предоставляет интерфейс для отчётности о логическом содержании XML-данных. Подробнее...

Заголовок: #include <QXmlContentHandler>
qmake: QT += xml
Наследуется от:

QXmlDefaultHandler

  • Список всех членов, включая наследуемые

Примечание: Все функции в этом классе являются повторно-входными.

Открытые функции

виртуальный ~QXmlContentHandler()
виртуальный bool characters(const QString &ch) = 0
виртуальный bool endDocument() = 0
виртуальный bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) = 0
виртуальный bool endPrefixMapping(const QString &prefix) = 0
виртуальный QString errorString() const = 0
виртуальный bool ignorableWhitespace(const QString &ch) = 0
виртуальный bool processingInstruction(const QString &target, const QString &data) = 0
виртуальный void setDocumentLocator(QXmlLocator *locator) = 0
виртуальный bool skippedEntity(const QString &name) = 0
виртуальный bool startDocument() = 0
виртуальный bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) = 0
виртуальный bool startPrefixMapping(const QString &prefix, const QString &uri) = 0

Подробное описание

Если приложению необходимо получать информацию о базовых событиях парсинга, оно может реализовать этот интерфейс и активировать его с помощью QXmlReader::setContentHandler(). Затем читатель может сообщать о базовых событиях, связанных с документом, таких как начало и конец элементов и данных символов, через этот интерфейс.

Порядок событий в этом интерфейсе очень важен и соответствует порядку информации в самом документе. Например, всё содержимое элемента (данные символов, инструкции обработки и подэлементы) отображается в порядке, начиная от события startElement() и до соответствующего события endElement().

Класс QXmlDefaultHandler предоставляет реализацию по умолчанию для этого интерфейса; наследование от класса QXmlDefaultHandler очень удобно, если вам нужно только получать информацию о некоторых событиях парсинга.

Функция startDocument() вызывается в начале документа, а endDocument() — в конце. Перед началом парсинга вызывается setDocumentLocator(). Для каждого элемента вызывается startElement(), а endElement() — в конце каждого элемента. Функция characters() вызывается с кусками данных символов; ignorableWhitespace() вызывается с кусками пробелов, а processingInstruction() — с инструкциями обработки.

Если сущность пропущена, вызывается skippedEntity(). В начале областей префикс-URI вызывается startPrefixMapping().

См. также QXmlDTDHandler, QXmlDeclHandler, QXmlEntityResolver, QXmlErrorHandler, QXmlLexicalHandler и Введение в SAX2.

Документация по функциям-членам

[virtual] QXmlContentHandler::~QXmlContentHandler()

Удаляет обработчик содержимого.

[pure virtual] bool QXmlContentHandler::characters(const QString &ch)

Читатель вызывает эту функцию, когда он проанализировал кусок данных символов (обычные данные символов или данные символов внутри секции CDATA; если вам нужно различать эти два типа, вы должны использовать QXmlLexicalHandler::startCDATA() и QXmlLexicalHandler::endCDATA()). Данные символов сообщаются в ch.

Некоторые читатели сообщают о пробелах в содержимом элемента с помощью функции ignorableWhitespace() вместо использования этой функции.

Читатель может сообщать о данных символов элемента более чем в одном фрагменте; например, читатель может сообщать "a<b" в трёх событиях characters() ("a ", "<" и " b").

Если эта функция возвращает false, читатель останавливает парсинг и сообщает об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

[pure virtual] bool QXmlContentHandler::endDocument()

Читатель вызывает эту функцию после завершения парсинга. Она вызывается только один раз и является последней функцией обработчика, которая вызывается. Она вызывается после того, как читатель прочитал весь ввод или отказался от парсинга из-за критической ошибки.

Если эта функция возвращает false, читатель останавливает парсинг и сообщает об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

См. также startDocument().

[pure virtual] bool QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)

Читатель вызывает эту функцию при парсинге тега конца элемента с квалифицированным именем qName, локальным именем localName и URI пространства имён namespaceURI.

Если эта функция возвращает false, читатель останавливает парсинг и сообщает об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

См. также startElement() и Поддержка пространств имён через функции.

[pure virtual] bool QXmlContentHandler::endPrefixMapping(const QString &prefix)

Читатель вызывает эту функцию для сигнализации об окончании сопоставления префиксов для префикса prefix.

Если эта функция возвращает false, читатель останавливает парсинг и сообщает об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

См. также startPrefixMapping() и Поддержка пространств имён через функции.

[pure virtual] QString QXmlContentHandler::errorString() const

Читатель вызывает эту функцию, чтобы получить строку ошибки, например, если любая из функций обработчиков возвращает false.

[pure virtual] bool QXmlContentHandler::ignorableWhitespace(const QString &ch)

Некоторые читатели могут использовать эту функцию для отчётности о каждом фрагменте пробелов в содержимом элемента. Пробелы сообщаются в ch.

Если эта функция возвращает false, читатель останавливает парсинг и сообщает об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

[pure virtual] bool QXmlContentHandler::processingInstruction(const QString &target, const QString &data)

Читатель вызывает эту функцию при парсинге инструкции обработки.

target — имя целевого элемента инструкции обработки, а data — данные в инструкции обработки.

END_OF_DOCUMENT_MARKER

Если эта функция возвращает false, чтение останавливается, и сообщается об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

[pure virtual] void QXmlContentHandler::setDocumentLocator(QXmlLocator *locator)

Читатель вызывает эту функцию перед началом разбора документа. Аргумент locator — указатель на QXmlLocator, который позволяет приложению получить позицию разбора внутри документа.

Не уничтожайте locator; он уничтожается при уничтожении читателя. (Не используйте locator после уничтожения читателя).

[pure virtual] bool QXmlContentHandler::skippedEntity(const QString &name)

Некоторые читатели могут пропускать сущности, если они не видели их объявления (например, потому что они находятся во внешнем DTD). В этом случае они сообщают о пропуске сущности с именем name, вызвав эту функцию.

Если эта функция возвращает false, чтение останавливается, и сообщается об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

[pure virtual] bool QXmlContentHandler::startDocument()

Читатель вызывает эту функцию при начале разбора документа. Читатель вызывает эту функцию только один раз после вызова setDocumentLocator() и перед вызовом любых других функций в этом классе или в классе QXmlDTDHandler.

Если эта функция возвращает false, чтение останавливается, и сообщается об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

См. также endDocument().

[pure virtual] bool QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)

Читатель вызывает эту функцию, когда он проанализировал открывающий тег элемента.

Соответствующий вызов endElement() происходит при чтении соответствующего закрывающего тега элемента. Вызовы startElement() и endElement() всегда правильно вложены. Теги пустых элементов (например, <x/>) вызывают вызов startElement(), за которым сразу следует вызов endElement().

Список атрибутов содержит только атрибуты с явными значениями. Список атрибутов содержит атрибуты, используемые для объявления пространства имён (т. е. атрибуты, начинающиеся с xmlns), только если свойство пространства имён читателя имеет значение true.

Аргумент namespaceURI — URI пространства имён или пустая строка, если у элемента нет URI пространства имён или если обработка пространства имён не выполняется. localName — локальное имя (без префикса) или пустая строка, если обработка пространства имён не выполняется, qName — полное имя (с префиксом), а atts — атрибуты, присоединённые к элементу. Если атрибутов нет, atts — пустой объект атрибутов.

Если эта функция возвращает false, чтение останавливается, и сообщается об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

См. также endElement() и Поддержка пространств имён через функции.

[pure virtual] bool QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri)

Читатель вызывает эту функцию для сигнализации о начале области действия сопоставления префикс-URI пространства имён. Эта информация не требуется для обычной обработки пространства имён, так как читатель автоматически заменяет префиксы в именах элементов и атрибутов.

Обратите внимание, что вызовы startPrefixMapping() и endPrefixMapping() не гарантируются как правильно вложенные относительно друг друга: все события startPrefixMapping() происходят до соответствующего события startElement(), а все события endPrefixMapping() происходят после соответствующего события endElement(), но их порядок не гарантируется иначе.

Аргумент prefix — префикс пространства имён, который объявляется, а аргумент uri — URI пространства имён, к которому префикс сопоставляется.

Если эта функция возвращает false, чтение останавливается, и сообщается об ошибке. Читатель использует функцию errorString() для получения сообщения об ошибке.

См. также endPrefixMapping() и Поддержка пространств имён через функции.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qxmlcontenthandler.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API