Описание класса QXmlContentHandler [модуль QtXml]
Класс QXmlContentHandler обеспечивает интерфейс для отчёта о логической структуре XML данных. Далее...
#include <QXmlContentHandler> Унаследован от QXmlDefaultHandler.
Замечание: все функции этого класса реентерабильны.
Открытые функции
Подробное описание
Класс QXmlContentHandler обеспечивает интерфейс для отчёта о логической структуре XML данных.
Если приложение хочет получать сообщения о низкоуровневых событиях при анализе, оно может унаследовать класс от этого интерфейса и активировать его с помощью QXmlReader::setContentHandler(). При чтении через этот интерфейс сообщается об основных событиях: начале и завершении элементов и символьных данных и т.д.
Порядок событий в этом интерфейсе очень важен, он отражает порядок следования информации в самом документе. Например, всё содержимое элемента (символьные данные, инструкции обработки, под-элементы) появляется в определённом порядке между событием startElement() и соответствующим ему endElement().
Класс QXmlDefaultHandler обеспечивает реализацию по умолчанию этого интерфейса; наследование от QXmlDefaultHandler может быть очень удобным, если вы хотите просто получать информацию о некоторых событиях анализа.
Функция startDocument() вызывается в начале анализа документа, а endDocument() - в конце. До начала анализа вызывается setDocumentLocator(). Для каждого элемента вызывается startElement(), а также endElement() должна быть вызвана в конце каждого элемента. Функция characters() вызывается для участка символьных данных; ignorableWhitespace() - для участка пустого пространства, а processingInstruction() вызывается для инструкции обработки. Если сущность пропускается, вызывается skippedEntity(). В начале областей с префиксом-URI будет вызвана startPrefixMapping().
Смотрите также QXmlDTDHandler, QXmlDeclHandler, QXmlEntityResolver, QXmlErrorHandler, QXmlLexicalHandler и Введение в SAX2.
Описание функций-членов
QXmlContentHandler::~QXmlContentHandler () [virtual]
Уничтожает обработчик содержимого.
bool QXmlContentHandler::characters ( const QString & ch ) [pure virtual]
Эта функция вызывается при анализе участка символьных данных (таких как обычные символьные данные или данные внутри CDATA области; если вам необходимо различить эти два случая, используйте QXmlLexicalHandler::startCDATA() и QXmlLexicalHandler::endCDATA()). Символьные данные передаются в ch.
Иногда при чтении сообщается о символах пустого пространства в содержимом элемента, используйте функцию ignorableWhitespace() перед текущей.
При чтении анализатор может сообщить о более, чем одном участке символьных данных; т.е. анализатор может представить "a<b" как три события characters() ("a ", "<" и " b").
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
bool QXmlContentHandler::endDocument () [pure virtual]
Эта функция вызывается при чтении после окончания анализа. Она вызывается только один раз, причём последней. Она вызывается после прочтения всех входных данный или отказа от дальнейшей обработки из-за ошибки.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
Смотрите также startDocument().
bool QXmlContentHandler::endElement ( const QString & namespaceURI, const QString & localName, const QString & qName ) [pure virtual]
Эта функция вызывается при чтении, когда встречается элемента с полным именем qName, локальным именем localName и URI пространства имён namespaceURI.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
Смотрите также startElement() и Особенности поддержки пространств имен.
bool QXmlContentHandler::endPrefixMapping ( const QString & prefix ) [pure virtual]
Эта функция вызывается при окончании связывания префикса prefix.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
Смотрите также startPrefixMapping() и Особенности поддержки пространств имен.
QString QXmlContentHandler::errorString () const [pure virtual]
Эта функция вызывается для получения строки ошибки, то есть если любая из функций обработки вернула false.
bool QXmlContentHandler::ignorableWhitespace ( const QString & ch ) [pure virtual]
Иногда при чтении можно использовать эту функцию для сообщения, что в содержимом элемента встретился участок символов пустого пространства. Они передаются в ch.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
bool QXmlContentHandler::processingInstruction ( const QString & target, const QString & data ) [pure virtual]
Эта функция вызывается, когда встречается инструкция обработки.
target является целью инструкции, а data - её данными.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
void QXmlContentHandler::setDocumentLocator ( QXmlLocator * locator ) [pure virtual]
Эта функция вызывается перед началом анализа документа. Аргумент locator является указателем на QXmlLocator, который позволяет получать текущую анализируемую позицию внутри документа.
Не уничтожайте locator; он уничтожится вместе с окончанием чтения. (Не используйте locator после этого).
bool QXmlContentHandler::skippedEntity ( const QString & name ) [pure virtual]
При чтении можно пропускать сущности, если они не имеют деклараций (т.е. они определены внешней DTD). Если это так, с помощью этой функции сообщается, что была пропущена обработка сущности name.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
bool QXmlContentHandler::startDocument () [pure virtual]
Эта функция вызывается при начале анализа документа. Она вызывается лишь однажды, после setDocumentLocator(), но до того, как все остальные функции этого класса или класса QXmlDTDHandler будут вызваны.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
Смотрите также endDocument().
bool QXmlContentHandler::startElement ( const QString & namespaceURI, const QString & localName, const QString & qName, const QXmlAttributes & atts ) [pure virtual]
Эта функция вызывается при анализе тега начала элемента.
Существует связанный вызов функции endElement(), который говорит, что элемент был прочитан. Вызовы startElement() и endElement() всегда вложены верно. В случае пустых тегов (например, <x/>) сразу за startElement() следует вызов endElement().
Список атрибутов предоставляется только если они содержат определённые значения. Список атрибутов содержит атрибуты, использующие декларации пространства имён (например, начинающиеся с xmlns) только, если свойство поддержки пространств имён равно true.
Аргумент namespaceURI является URI пространства имён или пустой строкой, если пространства имён не поддерживаются или у элемента нет URI. localName является локальным именем (без префикса) или пустой строкой, если пространства имён не обрабатываются, qName является полным именем (с префиксом) и atts представляет присоединённые к элементу атрибуты. Если атрибутов нет, atts является пустым объектом атрибутов.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
Смотрите также endElement() и Особенности поддержки пространств имен.
bool QXmlContentHandler::startPrefixMapping ( const QString & prefix, const QString & uri ) [pure virtual]
Эта функция вызывается при начале пространства использования префиксов-URI. Эта информация не является необходимой для нормальной обработки имен, поскольку при чтении префиксы для элементов и атрибутов имен автоматически заменяются.
Помните, что не гарантируется вызов startPrefixMapping() и endPrefixMapping() последовательно: все события startPrefixMapping() случаются до связанного startElement(), а все endPrefixMapping() случаются после связанных endElement(), но их порядок не обязательно будет строго определённым.
Аргумент prefix является префиксом пространства имён, который был связан с URI пространства имён uri.
Если эта функция вернула false, чтение останавливается, сообщается об ошибке. Функция errorString() используется для получения сообщения об ошибке.
Смотрите также endPrefixMapping() и Особенности поддержки пространств имен
|