Spec-Zone.ru › Qt 6.0

Класс 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.0/qxmlinputsource.html

Spec-Zone.ru

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