Spec-Zone.ru › Qt

Класс QXmlInputSource

Класс QXmlInputSource предоставляет входные данные для подклассов QXmlReader. Подробнее...

Заголовок: #include <QXmlInputSource>
CMake: find_package(Qt6 COMPONENTS Core5Compat REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
  • Список всех членов, включая унаследованные

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

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

QXmlInputSource(QIODevice *dev)
QXmlInputSource()
virtual ~QXmlInputSource()
virtual QString data() const
virtual void fetchData()
virtual QChar next()
virtual void reset()
virtual void setData(const QString &dat)
virtual void setData(const QByteArray &dat)

Защищенные функции

virtual QString fromRawData(const QByteArray &data, bool beginning = false)

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

Все подклассы QXmlReader считывают входной XML-документ из этого класса.

Этот класс распознает кодировку данных, считывая объявление кодировки в XML-файле, если находит его, и считывает данные с помощью соответствующей кодировки. Если объявление кодировки не найдено, предполагается, что данные либо в UTF-8, либо в UTF-16, в зависимости от того, можно ли найти метку порядка байтов.

Существует два способа заполнения входного источника данными: можно создать его с помощью QIODevice*, чтобы входной источник считывал данные из этого устройства. Или можно явно задать данные с помощью одной из функций setData().

Обычно вы либо создаёте QXmlInputSource, работающий с QIODevice*, либо создаёте пустой QXmlInputSource и устанавливаете данные с помощью setData(). Редко бывают случаи, когда вам нужно смешивать оба метода.

Подклассы QXmlReader используют функцию next() для чтения входного символа за символом. Если вы хотите начать сначала, используйте reset().

Функции data() и fetchData() полезны, если вам нужно сделать что-то с данными, помимо парсинга, например, отобразить исходный XML-файл. Преимущество использования QXmlInputClass в таких случаях заключается в том, что он пытается использовать правильную кодировку.

См. также QXmlReader и QXmlSimpleReader.

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

QXmlInputSource::QXmlInputSource(QIODevice *dev)

Создаёт входной источник и получает данные из устройства dev. Если dev не открыт, он открывается в режиме чтения. Если dev равен 0 или чтение из устройства невозможно, входной источник не будет содержать данных.

См. также setData(), fetchData() и QIODevice.

QXmlInputSource::QXmlInputSource()

Создаёт входной источник, не содержащий данных.

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

[virtual] QXmlInputSource::~QXmlInputSource()

Деструктор.

[virtual] QString QXmlInputSource::data() const

Возвращает данные, содержащиеся в входном источнике, или пустую строку, если входной источник не содержит данных.

См. также setData(), QXmlInputSource() и fetchData().

[virtual] void QXmlInputSource::fetchData()

Эта функция считывает больше данных из устройства, заданного при создании. Если входной источник уже содержал данные, эта функция сначала удаляет эти данные.

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

Существует два случая, когда запрос выполняется неявно другим вызовом функции: во время создания (так что объект изначально содержит некоторые начальные данные, если доступны) и во время вызова next() (если данные закончились).

Обычно вам не нужно использовать эту функцию, если вы используете next().

См. также data(), next() и QXmlInputSource().

[virtual protected] QString QXmlInputSource::fromRawData(const QByteArray &data, bool beginning = false)

Эта функция считывает XML-файл из data и пытается распознать кодировку. Она преобразует сырые данные data в QString и возвращает его. Она делает всё возможное, чтобы определить правильную кодировку для XML-файла.

Если beginning равно true, эта функция предполагает, что данные начинаются с начала нового XML-документа и ищет объявление кодировки. Если beginning равно false, она преобразует сырые данные, используя кодировку, определённую из предыдущих вызовов.

[virtual] QChar QXmlInputSource::next()

Возвращает следующий символ входного источника. Если эта функция достигает конца доступных данных, она возвращает QXmlInputSource::EndOfData. Если вы вызываете next() после этого, она пытается получить больше данных, вызывая fetchData(). Если вызов fetchData() приводит к новым данным, эта функция возвращает первый символ этих данных; в противном случае она возвращает QXmlInputSource::EndOfDocument.

Читатели, такие как QXmlSimpleReader, будут предполагать, что конец XML-документа достигнут, если эта функция возвращает QXmlInputSource::EndOfDocument, и проверят, что предоставленный вход является правильно сформированным. Поэтому при переопределении этой функции важно обеспечить, что это поведение дублируется.

См. также reset(), fetchData(), QXmlSimpleReader::parse() и QXmlSimpleReader::parseContinue().

[virtual] void QXmlInputSource::reset()

Эта функция устанавливает позицию, используемую next(), в начало данных, возвращаемых data(). Это полезно, если вы хотите использовать входной источник для более чем одного парсинга.

Примечание: В случае, если основной источник данных является QIODevice, текущая позиция в устройстве не устанавливается автоматически в начало входных данных. Вызовите QIODevice::seek(0) на устройстве, чтобы сделать это.

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

[virtual] void QXmlInputSource::setData(const QString &dat)

Устанавливает данные входного источника на dat.

Если входной источник уже содержит данные, эта функция сначала удаляет эти данные.

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

[virtual] void QXmlInputSource::setData(const QByteArray &dat)

Это перегруженная функция.

Данные dat передаются через правильный текстовый кодек, прежде чем будут установлены.

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

Spec-Zone.ru

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